数据已转移到 URL https://docs.google.com/spreadsheets/d/1gFuY2i50Vxdl5kx7iHZAupILAW2u35KYSRzCKKXMWIk/edit#gid=0的另一张表格
数据(特定行)通过编辑事件触发器传递,并检查该行是否为A空以及该行是否为F“问题案例”。如果问题情况A不为空,则当前工作表中当前行的数据将复制到另一个工作表。F
我从当前工作表中获取某些列:名称、日期、时间、城市、状态以及 G 列中的一些特定单元格,并将它们复制到另一张工作表。我只选取发生编辑的行。
代码:
function onEdit(e) {
try {
var sheet = e.source.getSheetByName('Daily report');
if (!sheet || e.range.columnStart < 6 || e.range.columnStart > 6) {
return;
}
var ui = SpreadsheetApp.getUi();
var title = "Message Box";
// Получаем данные из редактируемой строки
var row = e.range.rowStart;
var valueA = sheet.getRange('A' + row).getValue();
var valueF = sheet.getRange('F' + row).getValue();
// Проверяем, что строка C не пустая и значение в столбце G равно "Проблемный кейс"
if (valueA !== '' && valueF === 'Problem Case') {
// Получаем данные для записи в другой документ
var dataToSave = [
sheet.getRange('A' + row).getValue(),
sheet.getRange('B' + row).getValue(),
sheet.getRange('C' + row).getValue(),
sheet.getRange('D' + row).getValue(),
sheet.getRange('E' + row).getValue(),
sheet.getRange('F' + row).getValue(),
sheet.getRange('G3').getValue(),
sheet.getRange('G4').getValue(),
sheet.getRange('G5').getValue()
];
ui.alert(title, "TEST", ui.ButtonSet.OK);
var targetURL = "https://docs.google.com/spreadsheets/d/1gFuY2i50Vxdl5kx7iHZAupILAW2u35KYSRzCKKXMWIk/edit#gid=0";
var targetDoc = SpreadsheetApp.openByUrl(targetURL);
var targetList = targetDoc.getSheetByName("Sheet1");
targetList.getRange(1, 1, dataToSave.length, dataToSave[0].length).setValues([dataToSave]);
}
} catch (error) {
// Лог ошибки
Logger.log('Error: ' + error.toString());
}
}
如果编辑 F 列,它会检查条件并复制数据。Edit事件触发并将数据复制到数组:dataToSave。但是当我尝试在脚本中定义另一个文档和工作表时,就会出现问题。数据不会转移到另一张纸上。但dataToSave数组在编辑时会填充相应的数据。
我已通过目标文档的链接提供了编辑访问权限。我已授予脚本编辑我的 Google 表格的权限。但无论如何,什么也没有发生。
SourceSheet(源)可在以下位置获取:SourceSheet DestinationSheet(目标表)可在以下位置获取:DestinationSheet

最重要的
onEdit是,这不是一个触发器,它是一个简单的编辑事件触发器的注册函数。为此,您需要创建自己的函数并将其设置为编辑事件触发器调用函数。