[英]how do I change this google app script to hide sheets columns instead of rows based on column dates
[英]How do I hide rows in a Google spreadsheet using a script based on a character in a column?
我正在使用以下脚本来隐藏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脚本非常陌生,并且猜测这是一个非常基本的错误。)
您的直觉是正确的-这是一个非常基本的错误。 首先,请确保您实际上正在运行想要的代码。
在此示例中,您在函数内部有一个函数。 当您从电子表格中调用myFunction()
,将开始执行,但找不到任何要运行的代码。 由于onOpen()
被包围在myFunction()
但在没有呼叫myFunction()
来onOpen()
有什么可以做。
进行排序-您可能只需要删除onOpen()
的声明和onOpen()
括号。
接下来,当调用myFunction(B:B)
时,您将传递一个二维值数组,但是该函数中没有参数传递。 (您可以使用getRange('B:B').getValues()
显式检索值。)
一般建议:学习一些JavaScript(我建议使用CodeAcademy),并尝试一些Google Apps脚本教程 。 有了这些人的能力和信心,您就可以毫无困难地独立完成这项工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.