繁体   English   中英

如何使用基于列中字符的脚本隐藏Google电子表格中的行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM