【问题标题】:OnOpen formula to place google sheet ID into cell?OnOpen公式将谷歌工作表ID放入单元格?
【发布时间】:2021-11-12 15:10:13
【问题描述】:

我目前正在使用这个公式来获取 id:

function getId() {
  return SpreadsheetApp.getActiveSpreadsheet().getId()
}

它工作正常,我只是使用单元格中的公式来提取 id。问题是,当我复制工作表时,有时它会花很长时间并且卡在"loading" 上。是否有一个 onopen 公式可以用来将工作表 id 值放置在特定单元格中,而无需在工作表的单元格中使用公式 =getid()?这会阻止持续加载问题还是我只是再次创建同样的问题?

【问题讨论】:

  • 你应该阅读custom functions他们有限制和限制。目前您使用不当
  • 如果该函数是从脚本编辑器运行的,并且您从另一个显示返回值的函数调用它,该函数将正常工作
  • 我不认为这是可恨的。这是一种毫无意义的事情,因为您不能使用该 id 在脚本中执行任何其他操作,例如打开电子表格,因为自定义函数中不允许这样做。那么,为什么要走那条路,你想要实现什么目标又有什么意义呢。
  • 我注意到您如何删除评论说我正在尝试做的是愚蠢的。我要做的就是将当前工作表 ID 值输入到单元格中,因为它用于从主工作表导入范围。我一直在寻找一个脚本,我可以创建一个 onopen 触发器,用于将当前工作表 ID 值输入到标题为“IMPORT”的工作表的单元格 Z3 中。就是这样。

标签: google-apps-script google-sheets loading custom-function


【解决方案1】:

当电子表格打开时将电子表格的 id 加载到 Z3 中的函数

function onOpen() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet1');
  const rg = sh.getRange('Z3').setValue(ss.getId());
}

Range.setValue()

【讨论】:

  • 我不知道你有没有我想读的参考资料。谢谢
  • 谢谢。我想我错了很久了。
  • @TheMaster 我似乎记得有一段时间没有用,但现在可以了。
猜你喜欢
  • 2021-07-13
  • 2020-04-26
  • 2018-12-25
  • 2019-01-09
  • 2018-11-30
  • 2021-10-30
  • 2021-07-16
  • 2021-05-03
相关资源
最近更新 更多