Google apps script 更改GoogleApps脚本以从单独的工作表中获取

Google apps script 更改GoogleApps脚本以从单独的工作表中获取,google-apps-script,google-sheets,Google Apps Script,Google Sheets,当前正在使用此脚本获取时间戳 function onEdit(e) { var s = SpreadsheetApp.getActiveSheet(); if (s.getName() == 'Subsidy Portions') { var colWatch = 6; // column to watch, 5 = "E" var colRecord = 9; // column for timestamp, 6 = "F" if (e.range.

当前正在使用此脚本获取时间戳

function onEdit(e) {
  var s = SpreadsheetApp.getActiveSheet();
  if (s.getName() == 'Subsidy Portions') {
    var colWatch = 6;      // column to watch, 5 = "E"
  var colRecord = 9;     // column for timestamp,  6 = "F"
  if (e.range.getColumn() == colWatch) {
    e.range.offset(0, colRecord - colWatch).setValue(new Date());
  }
  }}
但是,现在需要在同一文件中引用不同的图纸

需要
colWatch=2
Notes
工作表上

colRecord=9
补贴部分
表上


谢谢

如果我理解正确,当注释表中的第2列发生更改时,您希望在补贴部分表中的第9列添加时间戳。要执行此操作,请添加另一个IF()节,因为提供的代码在文件的每次编辑(未测试)中都会运行:

说明

该s被设置为激活的工作表,该工作表经过编辑以触发该功能。s、 geName获取该工作表的名称,并测试该名称是否与{}中代码的名称匹配

if (s.getName() == 'Subsidy Portions') {
  // Code...
}
注释的IF部分内,这会将名为补贴部分的工作表加载到接收工作表中,获取在注释工作表中编辑的行,并假设我们在补贴部分中编辑同一行。然后使用它和要编辑的列来获取单个单元格的范围,将其保存在editRange中,然后将新日期添加到该单元格中

var sReceivingSheet = SpreadsheetApp.getSheetByName('Subsidy Portions');
var myRow = e.range.getRow();
var editRange = sReceivingSheet.getRange(myRow, colRecord);
editRange.setValue(new Date());
如果您需要在第二部分中编辑另一行,我们需要更多的代码来查找该行,方法是获取所有数据并循环,直到找到正确的行。我建议查看的示例代码中的getRowData()函数

var sReceivingSheet = SpreadsheetApp.getSheetByName('Subsidy Portions');
var myRow = e.range.getRow();
var editRange = sReceivingSheet.getRange(myRow, colRecord);
editRange.setValue(new Date());