Google apps script 遍历一个范围并设置值

Google apps script 遍历一个范围并设置值,google-apps-script,google-sheets,Google Apps Script,Google Sheets,在GoogleSheets中,我试图在提示用户输入起始范围和该范围内的行数后按顺序输入数字。例如,如果用户键入单元格“C5”并输入5行,则结果应该来自单元格C5-C10(1、2、3、4、5) 我找到了一种在所有行中输入相同值的方法,但我似乎无法遍历用户给定的范围并在每个单元格中设置不同的值 function placeInCell() { var mySheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = mySheet.

在GoogleSheets中,我试图在提示用户输入起始范围和该范围内的行数后按顺序输入数字。例如,如果用户键入单元格“C5”并输入5行,则结果应该来自单元格C5-C10(1、2、3、4、5)

我找到了一种在所有行中输入相同值的方法,但我似乎无法遍历用户给定的范围并在每个单元格中设置不同的值

function placeInCell() {
   var mySheet = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = mySheet.getSheetByName('Second');

   var ui = SpreadsheetApp.getUi();
   var result = ui.prompt('What cell to start with?', 
                                    ui.ButtonSet.OK);
   var result2 = ui.prompt('How many cells?', ui.ButtonSet.OK);

   // Process the user's response.
   var button = result.getSelectedButton();
   var cell = result.getResponseText();

   var button2 = result2.getSelectedButton();
   var numCells = result2.getResponseText();

   var cellRange = sheet.getRange(cell); 
   cellRange = cellRange.offset(0, 0, numCells);

   //iterate through the range given by the user and set values 
   //in each row
   for (var i = 0; i < numCells; i++){
      cellRange.setValue(i);
   };
}
函数placeInCell(){
var mySheet=SpreadsheetApp.getActiveSpreadsheet();
var sheet=mySheet.getSheetByName('Second');
var ui=SpreadsheetApp.getUi();
var result=ui.prompt('以什么单元格开头?',
ui.ButtonSet.OK);
var result2=ui.prompt('有多少个单元格?',ui.ButtonSet.OK);
//处理用户的响应。
var button=result.getSelectedButton();
var cell=result.getResponseText();
var button2=result2.getSelectedButton();
var numCells=result2.getResponseText();
var cellRange=sheet.getRange(单元格);
cellRange=cellRange.offset(0,0,numCells);
//遍历用户给定的范围并设置值
//每行
对于(var i=0;i
这样试试看

var values = cellRange.getValues();
for (var i = 0; i < numCells; i++) {
    values[i][0] = i;
}
cellRange.setValues(values);
var values=cellRange.getValues();
对于(var i=0;i
在谷歌应用程序脚本中,一个范围是通过索引
1..n
处理的,而不像数组等的
0..n-1
。 此外,不能像数组那样使用
[]
来寻址范围:您需要使用
偏移量
等方法。 正如您所评论的,这就是为什么“cellRange[i][0]。setValue(i)抛出错误。它说cellRange[i][0]未定义”

试试@SpiderPig的解决方案,它应该适合你。它使用一般的良好做法或最小化服务器端调用的数量,例如
getRange
setValue
offset
,而不是在本地(客户端)处理数组:首先使用myRange.getValues,然后处理数组,最后是myRange.setValues。

cellRange[i][0]。setValue(i)抛出错误。它说cellRange[i][0]未定义