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());