【问题标题】:Apps Script: Turn Google Sheet Formula Into A Callback FunctionApps 脚本:将 Google Sheet 公式转换为回调函数
【发布时间】:2021-12-17 15:36:04
【问题描述】:

我的工作表中有这两列:AB

A 包含day.month.year 格式的日期。 B 包含格式为 hh:mm 的小时。我通常使用这个公式连接这两列的值:

=concatenate((text(A3;"mm.dd.yyyy")&" "&text(B3;"hh:mm")))

我使用相同的公式连接其他 2 个单元格的值:C(填充日期!)和 D(填充小时!)。在这种情况下,确切的公式是:

=concatenate((text(C3;"mm.dd.yyyy")&" "&text(D3;"hh:mm")))

这个小练习的全部目的是获取在我的 Google 日历中创建事件所需的格式的日期和时间。我目前在我的日历事件创建脚本中使用setFormulaR1C1(formula) 方法,但我不确定这是否是一个好主意。所以,请告诉我:

  1. 与我的公式等效的应用程序脚本会是什么样子?
  2. 有没有办法将与我的公式等效的应用脚本编写为回调函数?

非常感谢您!

【问题讨论】:

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


【解决方案1】:

与我的公式等效的应用程序脚本会是什么样子?

鉴于单元格已经以您需要的格式显示日期和时间,您可以简单地使用:

const sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
const datetimeString = 
  sheet.getRange('A3').getDisplayValue()
  + ' '
  + sheet.getRange('B3').getDisplayValue();

如果单元格未以所需格式显示日期和时间,您将需要使用Utilities.formatDate()Spreadsheet.getSpreadsheetTimeZone()。在 Apps 脚本中解释电子表格时间值时会出现一些复杂情况。请参阅Google Script when taking time from sheets adds +1 minute 的食谱以避免意外。

要更轻松地使用电子表格公式,请使用以下命令:

=trim(A3) & " " & trim(B3)

【讨论】:

猜你喜欢
  • 2016-03-02
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多