我正在使用以下脚本隐藏B列中值为“1”的所有行。
function myfunction () {
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("CSSMaster");
var maxRows = sheet.getMaxRows();
//show all the rows
sheet.showRows(1, maxRows);
//get data from clumn B
var data = sheet.getRange('B:B').getValues();
//iterate over all rows
for(var i=0; i< data.length; i++){
//compare first character, if 1, then hide row
if(data[i][0].charAt(0) == '1'){
sheet.hideRows(i+1);
}
}
}
}
我转到我的电子表格并输入以下内容:= myfunction(B:B),我看到“思考”但没有任何反应。我究竟做错了什么? (我对Google脚本非常陌生,我猜这是一个非常基本的错误。)
答案 0 :(得分:3)
你的直觉是正确的 - 这是一个非常基本的错误。首先,确保您实际上正在运行您想要的代码。
在这个例子中,你在函数中有一个函数。当您从电子表格调用myFunction()
时,将开始执行,但不会找到任何要运行的代码。由于onOpen()
中包含myFunction()
,但myFunction()
与onOpen()
之间没有通话,因此无需执行任何操作。
排序 - 您可能只需要摆脱onOpen()
的声明和右括号。
接下来,当您调用myFunction(B:B)
时,您正在传递一个二维数组值,但您没有参数处理函数。 (您使用getRange('B:B').getValues()
显式检索值。)
一般建议:学习一些JavaScript(我推荐CodeAcademy),然后尝试一些Google Apps Script tutorials。凭借这些人的能力和信心,你可以毫无困难地自己动手。