如何在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);
}
}
我在 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);
}
}