首页 > 解决方案 > 如何在for循环中使用变量

问题描述

我在谷歌电子表格中有 50 行。用户使用这些行作为输入。但并未显示所有 50 行。当用户在 A2 单元格中输入数字时,只有该行数可见。我能够完成任务。但是 for 循环内部存在一个问题。

我认为问题出在这一行

for(var i = 2; i < 填充行; i++){

    //This is my full code.

    function onEdit(e) {
    //Logger.log("Previous value was - " + e.oldValue);
    //Logger.log("New value is - " + e.value);

    var range = e.range;

    var rowNumber = range.getRow();
    var columnNumber = range.getColumn();

    //Logger.log("Row - " + rowNumber);
    //Logger.log("Column - " + columnNumber);

    if (rowNumber == 2 && columnNumber == 1){
       //Logger.log(e.value);
       var fillingRows = e.value + 2;
       //Hide rows from 3 to 51
       var spreadsheet = SpreadsheetApp.getActive();
       spreadsheet.getRange('3:51').activate();
       spreadsheet.getActiveSheet().hideRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
       Logger.log(fillingRows);

       for(var i = 2; i < fillingRows; i++){
           spreadsheet.getActiveSheet().showRows(i, 1);
       }
     }

   }

当我把那条线改成这样的

for(var i = 2; i < 10; i++){

然后它可以正常工作。但我不能在这里使用常数。是否可以在 for 循环中使用变量。

标签: javascriptfor-loopgoogle-apps-scriptgoogle-sheetsgoogle-sheets-macros

解决方案


这可能是因为fillingRows不大于 2,因此,

我建议打印和检查fillingRows


推荐阅读