#ERROR!发生,但在单击单元格并按回车键时消失



我有一个谷歌表格,上面附有一些脚本。有一个 onOpen(( 函数在 UI 中创建一个菜单,该菜单是可以排序的列列表。通过选择菜单项调用的各个排序函数是以下脚本的变体(对不同的列进行排序(。

问题:在工作表上,该函数返回"#ERROR!",当单击包含函数的单元格并简单地按 Enter 时,该单元格会神奇地修复自身并完全显示正确的范围。

我不知道是公式有问题,还是脚本有问题。 关于可能出现问题的当前想法是:与公式引用另一张纸的事实有关。 关于从哪里开始或为什么会发生初始错误(重新计算单元格后显然不会保留(的任何想法?

function sortJoindate() {
var sortvar = "Join Date";
var sheet = SpreadsheetApp.getActiveSheet();
var currentSort = sheet.getRange("A2").getValue();
var pmdata = sheet.getRange("A3");
if (currentSort == "SORTED BY " + sortvar + " ASC") {
sheet.getRange("A2").setValue("SORTED BY Join Date DESC");
pmdata.setValue("=QUERY(MemberData!A:J,"select A,D,E,F,C,H,B where J = '" & A1 & "' order by A DESC "");
} else {
sheet.getRange("A2").setValue("SORTED BY " + sortvar + " ASC");
pmdata.setValue("=QUERY(MemberData!A:J,"select A,D,E,F,C,H,B where J = '" & A1 & "' order by A ASC "");
}
SpreadsheetApp.flush();
}

运行脚本后,在按单元格上的回车键之前运行脚本后,在单元格上按回车键后

发现了问题,当我按回车键时,谷歌表格以其所有的智慧和帮助纠正了我的解析错误,而且我没有足够彻底地研究我喂它的东西和它正在纠正的东西之间的区别。 我忘了最后的括号。

不對:

pmdata.setValue("=QUERY(MemberData!A:J,"select A,D,E,F,C,H,B where J = '" & A1 & "' order by A DESC "");

正确:

pmdata.setValue("=QUERY(MemberData!A:J,"select A,D,E,F,C,H,B where J = '" & A1 & "' order by A DESC ")");

区别在于括号从末尾开始 4 个字符...很高兴我最终找到了它。 检查您的括号 ppl。

最新更新