我正在尝试在两个谷歌电子表格之间创建一些内容的双向同步 .
我的脚本工作时间:
- 工作表的源ID和目标ID相同,并且具有活动电子表格的ID
那么,这个工作:
function myFunction() {
var sourceSpreadsheet = SpreadsheetApp.openById("ID-OF-ACTIVE-SPREADSHEET");
var destinationSpreadsheet = SpreadsheetApp.openById("ID-OF-ACTIVE-SPREADSHEET");
var sourceSheet = sourceSpreadsheet.getSheetByName("sheet1");
var destinationSheet = destinationSpreadsheet.getSheetByName("sheet2");
var sourceRange = sourceSheet.getRange("A1:A4");
// destination, columnStart, columnEnd, rowStart, rowEnd
sourceRange.copyValuesToRange(destinationSheet, 2, 2, 3, 7);
}
但是当我用另一个电子表格的ID替换目标ID时,它不起作用 . 它可能与权限有关吗?我试图发布两个电子表格 .
这不是:
...
var sourceSpreadsheet = SpreadsheetApp.openById("ID-OF-ACTIVE-SPREADSHEET");
var destinationSpreadsheet = SpreadsheetApp.openById("ID-OF-ANOTHER-SPREADSHEET");
...
由于我正在尝试创建双向同步,我认为我不能使用IMPORTRANGE
1 回答
似乎copyValuesToRange不在电子表格之外进行通信,这是一个有效的解决方案:
PS:这也可以实现电子表格之间的双向同步,只需在电子表格A和B上添加此代码的副本,并将“ID-OF-ANTHER-SPREADSHEET”替换为另一个电子表格的ID . 然后定义from-和to范围代替“A1:A8” .