如何在for循环中使用变量

How to use variable inside for loop

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

我认为问题出在这一行

for(var i = 2; i < fillingRows; 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循环中使用变量吗?

可能是因为fillingRows不大于2,所以,

我建议打印并检查 fillingRows

试试这个:

function onEdit(e) {  
  var sh=e.range.getSheet();
  if(sh.getName()!="Your sheet name")return;//Edit this.  Add your sheet name
  if(e.range.rowStart==2 && e.range.columnStart==1 && e.value>=1 && e.value<=50){
    //e.source.toast('Value: ' + e.value);
    sh.hideRows(3,50);
    sh.showRows(3,e.value);
    //sh.getRange(1,1).setValue(e.value);
  }
}