Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 优化Google Sheets脚本|加速脚本|更快的性能-脚本隐藏行_Javascript_Performance_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 优化Google Sheets脚本|加速脚本|更快的性能-脚本隐藏行

Javascript 优化Google Sheets脚本|加速脚本|更快的性能-脚本隐藏行,javascript,performance,google-apps-script,google-sheets,Javascript,Performance,Google Apps Script,Google Sheets,我需要帮助优化一个脚本,该脚本用于在名为Calculation的工作表中隐藏行。它跑得相当慢 脚本将遍历名为RangeColution的区域中的所有行,并根据行中4个不同单元格(第1、2、4和10列)的内容,隐藏或显示该行 我的直觉告诉我,有一种方法可以编写一个包含所有要隐藏的单元格的数据字符串,然后通过一个调用将它们全部隐藏,而不是对每一行执行隐藏/取消隐藏操作——但我的Java天赋不足 有人吗 // HIDE ROWS IN CALCULATION SHEET function hideRo

我需要帮助优化一个脚本,该脚本用于在名为Calculation的工作表中隐藏行。它跑得相当慢

脚本将遍历名为RangeColution的区域中的所有行,并根据行中4个不同单元格(第1、2、4和10列)的内容,隐藏或显示该行

我的直觉告诉我,有一种方法可以编写一个包含所有要隐藏的单元格的数据字符串,然后通过一个调用将它们全部隐藏,而不是对每一行执行隐藏/取消隐藏操作——但我的Java天赋不足

有人吗

// HIDE ROWS IN CALCULATION SHEET
function hideRowsCalc() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Calculation");

  var currentRange = ss.getRangeByName("RangeCalculation");
  var rangeStart = currentRange.getRow();
  var rangeEnd = currentRange.getLastRow();

          for (i = rangeStart; i < rangeEnd+1; i++) {

              if (sheet.getRange(i,1).getValue() == "" && sheet.getRange(i,3).getValue() == "" && sheet.getRange(i,4).getValue() == "" && sheet.getRange(i,10).getValue() == "")  {
                sheet.hideRows(i,1)  
              }
            else {
              sheet.showRows(i,1)
            }
       }
}
//隐藏计算表中的行
函数hideRowsCalc(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“计算”);
var currentRange=ss.getRangeByName(“RangeCalculation”);
var rangeStart=currentRange.getRow();
var rangeEnd=currentRange.getLastRow();
对于(i=rangeStart;i
不要对每行进行4.getValue()调用,而是一次获取所有值,然后在行中循环(这里也解释了:)谢谢,但是该命令会是什么样子呢?可能重复