我有一个google工作表文档,其中我需要为每个工作表单独运行相同的脚本,只要在B列上填充单元格,此脚本就会在A列上放置一个时间戳
function onEdit(event)
{
var timezone = "GMT-6";
var timestamp_format = "MM-dd-yyyy HH:mm:ss"; // Timestamp
var updateColName = "ColumnB"; //Columna que es actualiza
var timeStampColName = "ColumnA"; //Columna actualizada automáticamente
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); //Sheet
var actRng = SpreadsheetApp.getActiveSpreadsheet().getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
当我为columnA,columnB和Sheet2编写另一个脚本时,只将时间戳放在sheet1中,即使我在Sheet2上写了一些内容。
有什么建议吗?
其中一项建议是:
function onEdit(event)
{
var timezone = "GMT-6";
var timestamp_format = "MM-dd-yyyy HH:mm:ss"; // Timestamp
var updateColName = "Timestamp"; //Columna que es actualiza
var timeStampColName = "Ticket"; //Columna actualizada automáticamente
var sheet = event.source.getActiveSheet();
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
但它没有将时间戳放在columnA上。
答案 0 :(得分:1)
编辑B列时,您希望将时间戳放在已编辑的工作表的A列中,该工作表在单元格“A1”和“B1”中具有ColumnA
和ColumnB
。例如,在Sheet1中编辑列B时,它会将时间戳放入Sheet1的列A.当您在Sheet2中编辑列B时,它会将时间戳放入工作表2的列A.如果我的理解是正确的,那么这个修改怎么样?我认为你的情况有几个答案。所以请把它想象成其中之一。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); //Sheet
var actRng = SpreadsheetApp.getActiveSpreadsheet().getActiveRange();
var sheet = event.source.getActiveSheet();
var actRng = event.source.getActiveRange();
如果我的理解不是你想要的,请告诉我。我想修改我的答案。
答案 1 :(得分:0)
我通过创建一个新项目为新页面复制相同的代码来解决了这一问题。非常感谢您的协助。