【问题标题】:Active or not active sheet? how to write to non-active sheet [duplicate]活动或非活动表?如何写入非活动工作表[重复]
【发布时间】:2022-01-29 11:30:41
【问题描述】:

我有一个脚本,它可以读取谷歌驱动器文件夹,并在谷歌表格中给我一个总结。它的写入部分使用 getActive 表。根据文件的数量,执行需要几分钟。 我想每小时运行一次脚本,因此工作表将始终与文件交付保持同步。 它在工作表处于活动状态的白天工作正常。但是我从谷歌收到一条错误消息列表,在工作表未激活的夜间尝试失败,因此我不能使用活动工作表命令。 问题是如果可能的话,如何写入未激活的工作表?

欢呼疯子

好的,我想通了:首先我需要打开 SpreadSheet(在 serner 上),薄拿一张纸然后写信给它: 最终功能是这样的:

函数 writeToClosedSheet(){ var ss = SpreadsheetApp.openByUrl("url_to_Sheet") var sheet = ss.getSheetByName('NameOfSheet'); sheet.appendRow(["Mads 找到了解决方案"]); }

这行得通:)

【问题讨论】:

  • 你不需要openByUrl。只需getActive() 就可以在spreadsheet 上工作。如果电子表格关闭,只有sheet 会出现问题。

标签: google-apps-script google-sheets google-drive-api


【解决方案1】:

.getActiveSheet() 替换为.getSheetByName('mySheetName')

如果脚本没有绑定到电子表格,你必须像const sheet = SpreadsheetApp.openById('SPREADSHEET_ID').getSheetByName('SHEET_NAME')一样通过openbyid调用电子表格

【讨论】:

  • 谢谢你,迈克这仍然需要电子表格(即使不是工作表)处于活动状态?所以也许我的问题应该是:如何写入未打开的电子表格?
  • 好的,谢谢。我想到了。由于电子表格未打开,我首先需要打开它。然后我可以找到工作表,最后做需要做的事情。所以最终函数类似于: function writeToClosedSheet(){ var ss = SpreadsheetApp.openByUrl("url_to_Sheet") var sheet = ss.getSheetByName('NameOfSheet'); sheet.appendRow(["疯狂"]); }
  • 如果脚本绑定到工作表,可以使用getSheetByName,如果脚本是'单独',你必须通过openbyid调用电子表格,如const sheet = SpreadsheetApp.openById('SPREADSHEET_ID').getSheetByName('SHEET_NAME')
猜你喜欢
  • 2020-12-09
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多