0

如果更改了 I 或 J 列中的任何一个,我需要将当前日期和时间(基于单独的行)放在我的 google docs 电子表格的 K 列中。这是我第一次尝试使用谷歌脚本。

我找到了一个可以计算时间的函数(我希望我能弄清楚如何计算日期),但我不知道如何检查单元格中的更改并更新其他单元格。因此,例如,如果第 10 行的 I 或 J 列发生变化,则第 10 行的 K 列应该获取当前日期和时间。

function myFunction() {
  var d = new Date();
  var timeStamp = d.getTime();  // Number of ms since Jan 1, 1970

  // OR:

  var currentTime = d.toLocaleTimeString(); // "12:35 PM", for instance
}
4

1 回答 1

0

您可以试一试 - 它使用字符串格式将当前日期设置为正确的格式(您可以根据需要进行调整)。需要注意的一件重要事情:无论您在此处做什么,该值都将根据您在电子表格本身中指定的任何格式显示。因此,如果您什么都不做,结果将看起来像传统的日期时间表示。如果您希望它以您指定的格式出现,您可以做两件事:1.) 使用电子表格的格式菜单将整列转换为文本;或 2.) (我的选择)在你写的值前面加上 a ',这实际上会将它变成一个字符串(这就是在下面的代码中所做的)。希望这可以帮助。

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  // This was "MySheet" for me - change to whichever sheet you want to test
  if( s.getName() == "MySheet" ) {
    var r = s.getActiveCell();
    // Check if the column is either I or J
    var currColumn = r.getColumn();
    if( currColumn == 9 || currColumn == 10) {
      // If so, set dateCell = the current row at column J
      var dateCell = s.getRange(r.getRow(), 11);
      // Format the current date into datetime format (adjust to display how you want)
      var dateTime = Utilities.formatDate(new Date(), "GMT-8", "MMM-dd-yyyy h:mm a");
      // Set the cell
      dateCell.setValue("'" + dateTime);
    }
  }
};
于 2012-11-11T22:13:25.783 回答