我想在特定条件下将时间戳记写入不同的列。该功能应在范围内执行。我想将第13行用作标题行。
这是应该如何工作的:
时间戳1
如果在第14行的第8列或第9列中进行了输入,则应在同一行的第10列中写入定义的时间戳(“ HH:MM:SS”)。
时间戳2
如果在第14行的第16列中进行了输入,则应在同一行的第18列中写入时间戳。
为此,我使用下面的代码。不幸的是,这不起作用。
如果将范围扩展到整个表,请在第一行中编写列标题(请参见:updateColName,timeStampColName),并按如下所示定义“ Header”变量,然后代码即可工作。
var headers = sheet.getRange(1,1,1,sheet.getLastColumn())。getValues();
我究竟做错了什么?
function onEdit(e) {
var timezone = "GMT+2"; var timestamp_format = "HH:mm:ss"; var updateColName = "Letzte Prüfung"; var updateColName1 = "Watchlist"; var updateColName2 = "Entry Datum"; var timeStampColName = "Letzte Änderung"; var timeStampColName1 = "Letzte Änderung 2"; var now = new Date() var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Tickerprüfung'); var actRng = SpreadsheetApp.getActiveRange(); var editColumn = actRng.getColumn(); var index = actRng.getRowIndex(); var headers = sheet.getRange(13, 8).getValues(); var dateCol = headers[0].indexOf(timeStampColName); var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1; if (dateCol > -1 && index > 1 && editColumn == updateCol) { var cell = sheet.getRange(index, dateCol + 1); var date = Utilities.formatDate(new Date(), timezone, timestamp_format); cell.setValue(date); }
var dateCol = headers[0].indexOf(timeStampColName); var updateCol = headers[0].indexOf(updateColName1); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { var cell = sheet.getRange(index, dateCol + 1); var date = Utilities.formatDate(new Date(), timezone, timestamp_format); cell.setValue(date); }
var dateCol = headers[0].indexOf(timeStampColName1); var updateCol = headers[0].indexOf(updateColName2); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { var cell = sheet.getRange(index, dateCol + 1); cell.setValue(now); }
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。