我刚刚开始研究 Google Apps 脚本,发现了一些让我感到困惑的东西。我有一个包含日期的单元格 A2 的电子表格。我创建了一个 onEdit() 事件处理程序。
如果我更改日期值,e.value
是一个数字,即自 1/1/1900 以来的天数。 e.range.getValue()
是一个日期。
这是一个简单的例子:
function onEdit(e) {
// This returns a number -- number of days since 1/1/1900
SpreadsheetApp.getUi().alert('From event: '+e.value);
// This returns a date
SpreadsheetApp.getUi().alert('From selected range: '+SpreadsheetApp.getActiveSheet().getRange(2, 1).getValue());
// This also returns a date
SpreadsheetApp.getUi().alert('From event range: '+e.range.getValue());
}
我确定这是有原因的,我只是想念它。有人可以给我线索吗?谢谢!
最佳答案
e.Value
有差documentation关于e.value
,它说的是:
New cell value after the edit. Only available if the edited range is a single cell.
真实values of dates in spreadsheets是它们的序列号,从 1/1/1900 开始。只有 formattind 能让日期看起来像电子表格中的日期。所以,我想,这是一个很好的特性,我们可以使用 e.value
range.getValue()
有 more info关于这个函数,它给出了:
Number, Boolean, Date, or String depending on the value of the cell
所以它工作正常,给出一个日期。但是 Google Apps 使用的是 treats dates differently 的 javascript .这可能会导致对日期的理解出现问题。
关于google-apps-script - 日期字段的 Google App Script 事件值类型不同于 e.value 和 e.range.getValue(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38732599/