繁体   English   中英

在 Google 表格中自动执行动态 IMPORTRANGE

[英]Automate dynamic IMPORTRANGE in google sheets

我正在构建一个多部分问卷(总共 3 个),我希望有 4 张表格来保存数据(一张主表格,每个部分一张)。

当新行添加到主工作表并使其动态时,我如何将数据从主电子表格发送到另一张工作表,以便它不会每次都拉同一行?

我在网上找到了这个脚本:

脚本链接

但不幸的是,它是用于在工作表之间移动数据。 可以改造吗?

谢谢!

也许 setFormula class 可以为您提供帮助,它可以是动态的,您可以使用触发器对其进行更新

sheet.getRange(1,1,1,1).setFormula('=IMPORTRANGE("SPREADSHEET_URL", "SHEET_NAME!'+rangevariable1inA1notation+':'+rangevariable2inA1notation+'")');

确保你得到你想要的范围,以及这两个变量的符号来获得动态范围:

var rangevariable1inA1notation = sheet.getRange(1,1).getA1Notation(); // for example, instead of 1,1 it could be your own variable
var rangevariable2inA1notation = sheet.getRange(2,2).getA1Notation(); //for example

要将值发送到另一张表(除了您的主表),您可以使用onFormSubmit function,每次提交表单时都会触发它,并且它的事件 object包含您表单中的信息,您将能够根据需要将这些值传递到其他工作表中。

// This will be triggered every time the form is submitted
function onFormSubmit(e) {
  // Get all sheets in the active spreadsheet
  var sheetsArr = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  // Get the second sheet
  var slaveSheet1 = sheetsArr[1];
  // Get the row where the values will be inserted 
  var rowVals = slaveSheet1.getLastRow() + 1;
  // The number of cols where you will puth the values
  var numberOfCols = e.values.length;
  // Set values that came from the form
  slaveSheet1.getRange(rowVals, 1, 1, numberOfCols).setValues([e.values]);
}

小心可安装的触发器Restrictions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM