2017-05-08 37 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級月底人物......很高興我最終找到它。檢查你的括號。