【发布时间】:2021-09-17 14:50:59
【问题描述】:
我制作了一个简单的用户界面来获取用户数据。它获取一些条目,将其放入指定的数据库并清除表格。这很好用。虽然第 0 到 6 列是用户数据,但第 7 到 11 列是使用 0 到 6 数据的公式。我正在寻找一种解决方案,用户不必输入数据然后手动需要复制上述公式。我不想事先输入公式,因为我认为我会遇到问题,因为脚本会查找最后一行。
简而言之:它需要找到工作表上的最后一行,将数据写入新行并将第 7 到 11 列中的公式从其上方的行复制到新行。完全是菜鸟,这有意义吗?
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form");
var datasheet = ss.getSheetByName("Database");
var values = [[formSS.getRange("d3").getValue(),
formSS.getRange("d5").getValue(),
formSS.getRange("d7").getValue(),
formSS.getRange("d9").getValue(),
formSS.getRange("d11").getValue(),
formSS.getRange("d13").getValue()]]
datasheet.getRange(datasheet.getLastRow()+1,1,1,6).setValues(values)
formSS.getRange("d3").clearContent();
formSS.getRange("d5").clearContent();
formSS.getRange("d7").clearContent();
formSS.getRange("d9").clearContent();
formSS.getRange("d11").clearContent();
formSS.getRange("d13").clearContent();
}
【问题讨论】:
-
您可以使用array formulas 来执行此操作。这完全取决于您在第 7 列到第 11 列中有哪些公式
-
谢谢,但例如 H10 中的公式之一是这样的:
=IMPORTXML(($B$1&""&B10)&"/","//div[@class='priceValue ']")我无法使用 arrayFormula。有什么建议吗? -
如果您使用
IMPORTXML获得的数据是静态的,则最好将此公式替换为UrlFetchApp.fetch(url)。这样,您将删除大量IMPORTXML公式,这些公式会从您的表格中不断更新,并且它会更快地开始工作。我认为这个example 会帮助你
标签: google-apps-script google-sheets