Datetime 谷歌表单功能';脚本编辑器,包含两个不同列中的TODAY()和NOW()按钮,其中下一列在该列中不为空

Datetime 谷歌表单功能';脚本编辑器,包含两个不同列中的TODAY()和NOW()按钮,其中下一列在该列中不为空,datetime,google-apps-script,google-sheets,timestamp,Datetime,Google Apps Script,Google Sheets,Timestamp,目前,我正在看一些简单的文档,寻找一些模糊的方法,在谷歌页面上创建一个“按钮”(图像),以触发脚本编辑器上的一个函数。我不熟悉这种类型的语法,我通常使用自动热键和一些python 我只想让这个按钮填充两列。其中一个是当前日期,另一个是当前时间(它甚至不必有年份或秒tbh)。我不知道根据脚本的工作方式,页面名称是否重要。所以范围是('Log'!G4:H)。 比如,如果我要为AutoHotkey制作,我会将其设置为: WinGet, winid ,, A ; <-- need to ident

目前,我正在看一些简单的文档,寻找一些模糊的方法,在谷歌页面上创建一个“按钮”(图像),以触发脚本编辑器上的一个函数。我不熟悉这种类型的语法,我通常使用自动热键和一些python

我只想让这个按钮填充两列。其中一个是当前日期,另一个是当前时间(它甚至不必有年份或秒tbh)。我不知道根据脚本的工作方式,页面名称是否重要。所以范围是('Log'!G4:H)。 比如,如果我要为AutoHotkey制作,我会将其设置为:

WinGet, winid ,, A ; <-- need to identify window A = active
MsgBox, winid=%winid% 
;do some stuff 
WinActivate ahk_id %winid%
它只对目标细胞有效。
我想强制在列中的下一个可用单元格中输入,并将日期与时间分开,然后将它们放在彼此相邻的单元格中。

也许这会有帮助。。。如果编辑了第1列,它将自动打印第2列中的日期和第3列中的时间(见第1页):

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { 
var r = s.getActiveCell();
if( r.getColumn() == 1 ) { 
  var nextCell = r.offset(0, 1);
  var newDate = Utilities.formatDate(new Date(), 
  "GMT+8", "MM/dd/yyyy");
  nextCell.setValue(newDate);
}
if( r.getColumn() == 1 ) { 
  var nextCell = r.offset(0, 2);
  var newDate1 = Utilities.formatDate(new Date(), 
  "GMT+8", "hh:mm:ss");
  nextCell.setValue(newDate1);
}}}

每个gsheet只能使用一个OneEdit功能吗?我已经使用了一个函数来生成一个列all caps(它们是车牌)函数onEdit(e){var sheet,sheetName,colToCapitalize;sheet=e.source.getActiveSheet();colToCapitalize=19;sheetName='Log';if(sheet.getName()!==sheetName | | e.range.rowStart<2 | | e.range.columnStart!==colToCapitalize | | | typeof e.value==''object')返回;e.range.setValue(e.value.toUpperCase())}我真的想避免它被编辑。我希望它只是一个可选按钮,可以按下它来快速填充时间戳,就像您可以在单元格中放置=TIME(NOW(),NOW())或=TODAY()。我希望其中的值在那里,而不是实际的公式,这样在刷新工作表或有人随时“编辑”单元格时,它不会自动更新。您可以运行多个东西OneEdit,如:或者您可以随意命名并将其绑定到按钮
function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { 
var r = s.getActiveCell();
if( r.getColumn() == 1 ) { 
  var nextCell = r.offset(0, 1);
  var newDate = Utilities.formatDate(new Date(), 
  "GMT+8", "MM/dd/yyyy");
  nextCell.setValue(newDate);
}
if( r.getColumn() == 1 ) { 
  var nextCell = r.offset(0, 2);
  var newDate1 = Utilities.formatDate(new Date(), 
  "GMT+8", "hh:mm:ss");
  nextCell.setValue(newDate1);
}}}