Google Apps 脚本:使用电子表格中的数组

Google Apps Script: Use array out of spreadsheet

我尝试使用 Google Script Apps(而不是我更习惯的 VBA),现在设法在不同的电子表格(不仅是一个文档中的不同工作表)上创建一个循环) 使用 forEach 函数。 (我尝试使用 for (r=1;r=lastRow; r++) 但我没有成功)。

它正在手动定义工作表名称的数组: var SheetList = ["17DCu1nyyX4a6zCkkT3RfBSfo-ghoc2fXEX8chlVMv5k", "1rRGQHs_JShPSBIGFCdG6AqXM967JFhdlfQ92cf5ISL8", "1pFDyXgYmvC5gnN5AU5xJ8vGiihwtubcbG2n4LPhPACQ", "1mK_X4Q7ysJQTt8NZoZASBE5zuUllPmmWSJsxu5Dnu9Y", "1FpjIGWTG5_6MMYJF72wvoiBRp_Xlt5BDpzvSZKcsU"]

然后循环获取信息:

SheetList.forEach(function(r) {
    var thisSpreadsheet = SpreadsheetApp.openById(r)
    var thisData = thisSpreadsheet.getSheetByName('Actions').getDataRange()

    var values = thisData.getValues();

    var toWorksheet = targetSpreadsheetID.getSheetByName(targetWorksheetName); 
    var last = toWorksheet.getLastRow ()+ 1
    var toRange = toWorksheet.getRange(last, 1, thisData.getNumRows(), thisData.getNumColumns())

    toRange.setValues(values);
    })

现在我想从电子表格 'List' 中“自动”创建数组的定义,其中我要循环的所有电子表格都列在 C 列中。

我尝试了几个想法,但总是失败。 最乐观的是:

var SheetList = targetSpreadsheetID.getSheetByName('List').getRange(2,3,lastRow-2,3).getValues()

而且我还尝试了数组函数:

var sheetList=Array.apply(targetSpreadsheetID.getSheetByName('List').getRange(2,3,lastRow-2,3))

但都没有成功。 通常应该可以在或多或少的一行中将数​​组从电子表格导入到 Google 应用程序脚本? 如果有人能给我提示我的错误在哪里,我将不胜感激。

非常感谢。 玛丽亚

我仍然没能按照我最初的想法放置数组,但现在我找到了一个可行的 For Loop 解决方案,我想在这里分享它,以防有人正在寻找类似的解决方案(然后找到至少我的解决方法 ;) )

for (i=2; i<lastRow;i++){
   var SheetList = targetSpreadsheetID.getSheetByName('List').getRange(i,3).getValues() 
    Logger.log(SheetList);
    var thisSpreadsheet = SpreadsheetApp.openById(SheetList); 
    ... // the rest identical to loop above...

请随时添加您的评论或建议,但我会将问题标记为已关闭。

非常感谢。

玛丽亚