我使用下面的脚本将基于状态的行移动到同一电子表格中的多个选项卡。我希望将行复制并粘贴到名为A,B和C的完全不同的电子表格中,而不是剪切和粘贴到A,B和C标签中。
function moveRows() {
var ss = SpreadsheetApp.getActive();
var source = ss.getSheets()[0];
var val = source.getDataRange()
.getValues();
for (var row = val.length - 1; row >= 0; --row) {
if (val[row][23] == 'A') {
ss.getSheetByName('A')
.appendRow(val[row]);
source.deleteRow(parseInt(row) + 1);
} else if (val[row][23] == 'B') {
ss.getSheetByName('B')
.appendRow(val[row]);
source.deleteRow(parseInt(row) + 1);
} else if (val[row][23] == 'C') {
ss.getSheetByName('C')
.appendRow(val[row]);
source.deleteRow(parseInt(row) + 1);
}
}
}
答案 0 :(得分:1)
您需要做的就是获取指向正确电子表格的指针。我假设您不知道他们的文档ID(/d/
和/edit
之间的网址部分)。但是,您知道名称为A
,B
,依此类推。这样的代码片段将为您提供指向右侧Sheets文档的指针,假设只有一个名为A
的文档。
var files = DriveApp.getFilesByName('A');
var file = files.next();
var id = file.getId();
var ss = SpreadsheetApp.openById(id);
否则像以前一样继续,对要复制到的每个文件执行一次。