[英]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.