【发布时间】:2018-06-11 16:58:46
【问题描述】:
我希望我的 Google 表格自动执行以下操作:
- 如果编辑/更新了“标题”列 --> 则将日期戳 (mm-dd-yy) 插入到“日期”列;
- 如果编辑/更新了“标题”列 --> 则将时间戳 (hh:mm) 插入到“时间开始”列中;和
- 如果编辑/更新了“描述”列 --> 则将时间戳 (hh:mm) 插入到“TimeStop”列。
我已经为列 A 到 E 添加了命名范围,如下所示:
- A 列 = 标题
- B 列 = 说明
- C 列 = 日期
- D 列 = 时间开始
- E 列 = TimeStop。
我找到了一个代码,可以让我做日期戳/时间戳的事情,但它只适用于一列(来自https://www.internetgeeks.org/tech/add-timestamp-time-stamp-google-docs-spreadsheet/):
function onEdit(event)
{
var timezone = "PST";
var timestamp_format = "MM-dd-yy";
var updateColName = "Title";
var timeStampColName = "Date";
var sheet = event.source.getSheetByName('Sheet1');
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) {
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
我试图一遍又一遍地复制和粘贴相同的代码,只是更改了updateColName、timeStampColName 和timestamp_format 变量的值。
我发现,您不能只是复制和粘贴多个 onEdit 函数并期望它在同一个文档上运行。
一段时间以来,我一直在努力寻找解决方案。我觉得如果我对编码有一点了解,我就能弄清楚这一点,但我不知道。
这是我的 Google 表格的链接:https://docs.google.com/spreadsheets/d/1_dW8erkzVJFT6aUiB-0SikeMTbCnXmoo3d5mgUBN910/edit?usp=sharing
【问题讨论】:
标签: google-apps-script google-sheets triggers