2017-05-08 19 views
0

我有一个附加了一些脚本的谷歌表。有一个onOpen()函数可以在UI中创建一个菜单,该菜单是可以排序的列的列表。通过选择菜单项调用的各个排序函数是以下脚本的变体(具有不同的列排序)。#ERROR!发生,但消失时点击单元格,然后按回车

问题:在表单上,​​函数返回“#ERROR!”当单击包含功能的单元格时,只需按下回车键,单元格就会自动修复自身并完全按照它应该显示的正确范围。

我不知道公式或脚本是否存在问题。关于什么可能是问题的当前想法是:与公式引用另一张表的事实有关。关于从哪里开始或为什么初始错误(重新计算细胞后显然不存在)发生的任何想法?

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(); 
} 

After running script, BEFORE pressing enter on cell After running script, AFTER pressing enter on cell

回答

0

发现了问题,在其所有的智慧和乐于助人谷歌张纸给我纠正语法错误,当我按下回车键,我没有什么的区别看不够彻底我正在喂它,它正在改正什么。最后我忘了支架。

不正确的:

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级月底人物......很高兴我最终找到它。检查你的括号。