我一直在浏览不同的论坛和 stackoverflow,以在我的脚本中找到问题的解决方案。让我解释:
我有 2 个不同的电子表格,每个电子表格都包含一张工作表。我想将“Spreadsheet1 - Sheet 1”中的数据合并到“Spreadsheet2 - Data”。我的逻辑是将电子表格 1 中的数据复制到电子表格 2(这非常有效)。但是,我还希望我的脚本删除在 Spreadsheet1 中找到的数据,这就是我被阻止的地方。我正在尝试使用“deleteRows()”方法,但这似乎无法正常工作。
这是我的脚本:
function Consolidate() {
var source = SpreadsheetApp.openById('Spreadsheet1_unique_id');
var sourcesheet = source.getSheetByName('Sheet1');
var target = SpreadsheetApp.openById('Spreadsheet2_unique_id')
var targetsheet = target.getSheetByName('Data');
var targetrange = targetsheet.getRange(targetsheet.getLastRow(), 1, sourcesheet.getLastRow(), sourcesheet.getLastColumn());
var rangeValues = sourcesheet.getRange(2, 1, sourcesheet.getLastRow(), sourcesheet.getLastColumn()).getValues();
targetrange.setValues(rangeValues);
sourcesheet.deleteRows(2, sourcesheet.getLastRow());
}
我的 Google Apps 脚本的调试功能指示“那些行超出范围”。在这种情况下,这意味着什么?
通过搜索,我了解到我在deleteRows()中定义的第二个参数并不代表一系列行,而只是一行。知道我试图找到一种方法来得到正确的东西。然而,每次尝试都是由一个非工作脚本结束的。我是正确的还是我弄错了?
有人对如何达到预期结果有想法吗?
非常感谢你的帮助!