我不明白为什么会收到此错误

时间:2020-06-27 02:16:28

标签: javascript google-apps-script google-sheets

我完全不熟悉JavaScript,但是我试图创建一个脚本,当按下按钮时,该脚本在特定单元格中生成格式化的时间戳记。

我已经知道它可以在表中使用true / false,但是我不知道如何在JavaScript中做到这一点。到目前为止,到目前为止,我已经遇到了我不明白的错误。

有人可以帮助我了解或链接我如何解决其中一些问题的资源吗?我已经花了几个小时搜索和阅读Google开发人员页面以尝试学习,但到目前为止我还没有运气。

错误:

enter image description here

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet()
  var date = new Date(); var timeStamp = date.getTime(); // Unix Timestamp
  var currentTime = date.toLocaleTimeString(); // eg. 10:23:30 AM HKT 
  sheet.setValue(currentTime);
}

2 个答案:

答案 0 :(得分:1)

您需要在一个单元格而不是整个工作表上设置值。要在最左上角的单元格上执行此操作,请选择A1,例如:

function myFunction() {
  var date = new Date();
  var timeStamp = date.getTime(); // Unix Timestamp
  var currentTime = date.toLocaleTimeString(); // eg. 10:23:30 AM HKT 

  var sheet = SpreadsheetApp.getActiveSheet(); // Sheet
  var cell = sheet.getRange('A1'); // Cell           <------------------------
  cell.setValue(currentTime); // <--------------------------------------------
}

答案 1 :(得分:1)

虽然已接受的答案为您提供了一个完全有效的解决方案,但我想我会逐步引导您完成自己的过程,以使用文档快速地弄清这一点(不一定具有使用Google Apps脚本的任何经验)。

SpreadsheetApp.getActiveSheet()方法返回活动的Sheet对象。

我们可以浏览Sheet类的文档,以查看哪些方法可用,哪些可能对我们有用。

getActiveRange()看起来很有趣。它:

返回活动工作表中选定的range,如果没有活动范围,则返回null。

因此,再次在文档中搜索Range类以查看范围类可用的方法,我们可以找到setValue

function myFunction() {
  var date = new Date();
  var timeStamp = date.getTime();
  var currentTime = date.toLocaleTimeString(); 

  var sheet = SpreadsheetApp.getActiveSheet();
  var activeRange = sheet.getActiveRange();
  if (activeRange) {
      activeRange.setValue(currentTime);
  }
}

希望这个答案教给您更多逐步解决未来此类问题的方法。