Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何引用包含电子表格ID的特定单元格列表,以便在循环中使用?_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如何引用包含电子表格ID的特定单元格列表,以便在循环中使用?

Javascript 如何引用包含电子表格ID的特定单元格列表,以便在循环中使用?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个主数据表,它可以处理一堆其他的电子数据表,从这个意义上说,主数据表有一大堆从子数据表中提取特定信息的重要数据,子数据表在功能上是相同的,但在数据上是不同的。每个子电子表格都有自己的自动化脚本,这些脚本与每个单独的ss相关,但我希望任何以等效方式影响每个ss的脚本都可以从一个主表格运行。所有子ss都有相同的结构,因此第一个表名为main,它从同一ss上的其他表中提取一组数据 基本上,我需要在大约30个电子表格上运行完全相同的函数,并且我想我可以制作一个电子表格,其中有一个脚本将循环遍历电子

我有一个主数据表,它可以处理一堆其他的电子数据表,从这个意义上说,主数据表有一大堆从子数据表中提取特定信息的重要数据,子数据表在功能上是相同的,但在数据上是不同的。每个子电子表格都有自己的自动化脚本,这些脚本与每个单独的ss相关,但我希望任何以等效方式影响每个ss的脚本都可以从一个主表格运行。所有子ss都有相同的结构,因此第一个表名为main,它从同一ss上的其他表中提取一组数据

基本上,我需要在大约30个电子表格上运行完全相同的函数,并且我想我可以制作一个电子表格,其中有一个脚本将循环遍历电子表格列表。最好是,电子表格id列表在主电子表格(比如main!B5:B)的一组单元格中以纯文本形式显示,这样我就可以向列表中添加一个新的电子表格id,我添加的任何新电子表格在运行脚本时也会运行该脚本

function myFunction() {
  // This next line is what I'm not sure how to do
    // var ssList = [ Cell B5, Cell B6 ...  ];
     var len = ssList.length 
     var rows = sheet.getDataRange();
     var numRows = rows.getNumRows();
     var values = rows.getValues();
     var rowsDeleted = 0;

  // Spreadsheet loop
     for (var i = 0; i < len; i++) {
         var TargetSheet = SpreadsheetApp.openById(ssList[i]);
     }
}
函数myFunction(){
//下一行是我不知道该怎么做的
//var ssList=[单元格B5,单元格B6…];
var len=ssList.length
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var rowsDeleted=0;
//电子表格循环
对于(变量i=0;i
这应该行得通,而且您看起来在正确的轨道上,但是您需要引用每行中包含ID的特定列

getValues()返回一个二维数组(“数组数组”),每行是一个单元格数组。现在,您正在将整行传递给openById,而不是特定的单元格

您不需要将包含ID的单元格列表硬编码到脚本中,只需依赖电子表格中的数据即可

例如,如果电子表格ID位于A列中,则需要引用该行索引0处的值:

var TargetSheet = SpreadsheetApp.openById(values[i][0]);
var TargetSheet = SpreadsheetApp.openById(values[i][1]);
或者,如果电子表格ID位于B列中,则该行的索引1为:

var TargetSheet = SpreadsheetApp.openById(values[i][0]);
var TargetSheet = SpreadsheetApp.openById(values[i][1]);
要获取“len”的值,可以参考值的长度,即数据范围内的行总数

var len = values.length;
完全修改的代码如下所示:

function myFunction() {
     var rows = sheet.getDataRange();
     var values = rows.getValues();
     var rowsDeleted = 0;

  // Spreadsheet loop
     for (var i = 0; i < values.length; i++) {
         var TargetSheet = SpreadsheetApp.openById(values[i][1]);  //get all values from column "B" (index 1)
     }
}
函数myFunction(){
var rows=sheet.getDataRange();
var values=rows.getValues();
var rowsDeleted=0;
//电子表格循环
对于(变量i=0;i
这应该行得通,而且您看起来在正确的轨道上,但是您需要引用每行中包含ID的特定列

getValues()返回一个二维数组(“数组数组”),每行是一个单元格数组。现在,您正在将整行传递给openById,而不是特定的单元格

您不需要将包含ID的单元格列表硬编码到脚本中,而只需依赖电子表格中的数据

例如,如果电子表格ID位于A列中,则需要引用该行索引0处的值:

var TargetSheet = SpreadsheetApp.openById(values[i][0]);
var TargetSheet = SpreadsheetApp.openById(values[i][1]);
或者,如果电子表格ID位于B列中,则该行的索引1为:

var TargetSheet = SpreadsheetApp.openById(values[i][0]);
var TargetSheet = SpreadsheetApp.openById(values[i][1]);
要获取“len”的值,可以参考值的长度,即数据范围内的行总数

var len = values.length;
完全修改的代码如下所示:

function myFunction() {
     var rows = sheet.getDataRange();
     var values = rows.getValues();
     var rowsDeleted = 0;

  // Spreadsheet loop
     for (var i = 0; i < values.length; i++) {
         var TargetSheet = SpreadsheetApp.openById(values[i][1]);  //get all values from column "B" (index 1)
     }
}
函数myFunction(){
var rows=sheet.getDataRange();
var values=rows.getValues();
var rowsDeleted=0;
//电子表格循环
对于(变量i=0;i
您可以阅读有关数组映射和forEach方法的更多信息


您可以阅读有关数组映射和forEach方法的更多信息

有很多方法可以“引用特定的单元格列表”。你已经读过了吗?顺便说一句,请按照中的建议添加对您的搜索/研究工作的简要描述。问题是我不一定知道如何简洁地表达这个问题以搜索它。我查阅了如何引用一个特定的单元格列表,我尝试了一些代码实验室,我尝试了很多东西,但这些东西并没有告诉我需要知道什么,这就是我应该在var=ssList行中输入的内容,这实际上会使代码运行。我在上一篇评论中提到的文章是介绍性的,我认为每个想提出这样一个问题的人都应该阅读它。顺便问一下,您的脚本是否绑定到包含“特定单元格列表”的电子表格?或者你是如何创建你的Google Apps脚本项目的?我有一个主控表,它可以处理一堆其他的电子表格,从这个意义上说,主控表有一大堆从子ss中提取特定信息的导入,子ss在功能上是相同的,但在数据上是不同的。每个子电子表格都有自己的自动化脚本,这些脚本与每个单独的ss相关,但我希望任何以等效方式影响每个ss的脚本都可以从一个主表格运行。所有的子ss都有一个相同的结构,因此第一个工作表被命名为main,它从同一个ss上的其他工作表中提取一组数据。你已经读过了吗?顺便说一句,请按照中的建议添加对您的搜索/研究工作的简要描述。问题是我不一定知道如何简洁地表达这个问题以搜索它。我查阅了如何引用一个特定的单元格列表,我尝试了一些代码实验室,我尝试了一大堆东西,这些东西并没有告诉我我需要知道什么,我在var=ssList行中放了什么,实际上