问题标签 [google-apps-script-editor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
394 浏览

google-apps-script - 是否可以让一个复选框打开/关闭另一个复选框?

我是谷歌脚本的新手,我一直在努力做到这一点,所以当一个复选框设置为 True 时,另一个复选框将设置为 False,onEdit。谁能告诉我那个代码会是什么样子?

0 投票
1 回答
1848 浏览

google-apps-script - 我可以创建快捷方式来执行 Google Apps 脚本吗?

我有一个在表单条目提供的 Google 表格上运行的脚本。基本上,当我填写表格时,它会在工作表上创建一个条目。从该条目中,我的脚本创建了一个新文档,该文档“美化”了工作表上的字段以进行分发。

此工作表位于团队驱动器上,但为了在驱动器中创建生成的文档,我必须将无界脚本放在驱动器中并引用工作表。如果我将它绑定到工作表,它将始终将新创建的文档放在团队驱动器中——这是我不想要的。

当它绑定到工作表时,我有一个触发器,它会在提交表单时自动创建文档。现在脚本在我的驱动器上,提交时触发不是一个选项。我唯一的选择是基于时间或基于日历的,这些都不是真正的工作——除非我只想每月或每分钟获取一次文档。

所以现在,我知道执行脚本的唯一方法是每次都手动执行,这是一个很大的麻烦,并且无论您如何执行都需要多个步骤。

有没有办法在命令上触发此脚本而无需打开脚本编辑器,单击我想要的脚本,然后单击运行?

为什么应用程序中没有键盘快捷键?我知道 Ctrl+R —— 但这仅在您已经在顶部操作栏中突出显示要突出显示的脚本时才有效。如果我在没有突出显示的情况下键入 Ctrl+R,则不会发生任何事情。Alt+R 或 Alt 什么都不会发生,真的。我已经尝试简单地按 187 次来到达我需要的位置,但选项卡似乎从来没有集中在脚本菜单区域中。它只是在地址栏、快捷方式栏等周围反弹。

注意:我不想对这个脚本进行重大更改。让它正常工作需要很长时间,我不想把它抬高。我只想能够触发它,而不必经过 18 个步骤。

0 投票
0 回答
1640 浏览

google-apps-script - Google Apps 脚本 onEdit() 触发器未执行

我已经实施了大约一年半的电子表格,它不断运行许多基于触发器的 GAS 功能来检查数据,根据该数据发送电子邮件,并更新员工日历。

所有时间驱动的触发器都在正常执行。我对他们没有意见。但是,电子表格驱动的触发器(onEdit、onChange)根本不起作用。我离开工作了两个星期的假期,我根本没有改变剧本。当我回来时,它不再起作用了。

我删除了触发器,重新创建了它,然后在 onEdit 和 onChange 之间切换;触发器仍然不会触发。编辑时触发的功能取决于事件是否正确执行。我测试在触发器之外运行了该函数,但它在我期望的地方(事件相关变量所在的地方)失败了,所以这并不奇怪。

据我所知,电子表格驱动的触发器根本不会触发。有谁知道谷歌的任何问题,电子表格驱动的触发器是否适用于你们中的任何人?据我所知,触发器刚刚停止工作。

如果我在脚本的 onEdit() 函数中显式嵌套我的函数,它将执行,如果我只是创建一个触发器则不会执行,但是它会抛出一个错误,指出脚本没有执行 MailApp.sendEmail 的权限() 即使该应用程序已被授权以我的身份发送电子邮件。

更有趣的是,使用时间驱动触发器执行的功能仍然能够发送电子邮件和更新我的日历。

似乎电子表格驱动的触发器已经不再一起工作了。

为了清楚起见,我没有将我的函数命名为 onEdit 或 onChange 的错误。

0 投票
1 回答
3273 浏览

google-apps-script - 在 Google Apps 脚本中使用换行符或换行符命令

我制作了一个脚本,其中数据从谷歌电子表格发送到我没有创建新行或不支持换行命令的 WhatsApp。GAS 也不支持 \n 以及
拆分我的消息的声明。

这是当前输出:

尊敬的 ABC XYZ 先生感谢您选择 XXXX Holidays 来度过您的梦想假期,我们很高兴确认您的旅行——南非探索之旅将于 2019 年 5 月 12 日启程。请在 2019 年 3 月 18 日之前提交您的签证文件,以避免签证处理延误。如果有任何进一步的疑问,请联系您的销售代表 - Thomas Bond,或者您可以致电孟买办事处寻求进一步帮助。我们的办公室从星期一到星期六的 1100 到 1900 小时开放。谢谢和问候 XXX

预期输出:

亲爱的 ABC XYZ 先生

感谢您选择 XXXX Holidays 为您的梦想假期,我们很高兴确认您的旅行 - 南非探索之旅将于 2019 年 5 月 12 日启程。

请在 2019 年 3 月 18 日之前提交您的签证文件,以避免签证处理延误。如果有任何进一步的疑问,请联系您的销售代表-Thomas Bond,或者您可以致电孟买办事处寻求进一步帮助。

我们的办公室从周一到周六的 1100 到 1900 小时开放。

感谢和问候

XXX

0 投票
1 回答
159 浏览

javascript - 根据最后一行的条件触发电子邮件警报 NOT WORKING

我试图构建一个脚本,但有一些问题。表格格式为 2 列,即日期和值。这些是需求:

理想状态

  1. 抓取 Google 表格中名为“test”的最后一行(今天的日期)。
  2. 如果 F 列中的值大于 0.5,请检查该行。
  3. 如果大于 0.5,则触发电子邮件。
  4. 在电子邮件正文中,应注明“在 [日期] 找到结果”。

这是我的出发点,但它不会产生我想要的东西。这些是问题:

当前状态

1.脚本抓取过去F列大于0.5的每一行。我只想检查今天(这将是最后一行)。它不应该看透过去的一切。

2.电子邮件正文状态:在[行号]上找到结果。这没有意义。我希望显示日期,而不是行号。

这是当前的代码。请帮忙。

在这种情况下,最后一行是第 217 行,而不是 218,假设 sheet.getLastRow() 将忽略 #DIV/o!价值观。请参阅屏幕截图。

最新更新
当前错误与“toDateString”有关。我认为这可能与我的 Google 表格落后一天有关。所以,今天是 1 月 10 日,我的 Google 表格中的最后一行是 1 月 9 日。我认为这就是错误发生的原因。你确定吗?在那种情况下,我如何将其更改为今天 - 1 天?

见下文。

0 投票
0 回答
25 浏览

undo-redo - 在编辑脚本时,我可以拥有多少个 UNDO 和 REDO 级别,剩下的数字是多少?

这里的大多数答案都在讨论对脚本所做的更改的 UNDO/REDO。我注意到我只能通过我一直在对我的脚本进行的编辑返回这么多次。

我可以退多少级?我可以增加这个数字吗?什么东西重置了UNDO?

PS> 我知道我可以返回版本,但这似乎是针对整个项目的,我只想对我正在处理的脚本进行无限撤消。

UNDO 和REDO 工作但有限制。

预计能够继续返回。

0 投票
1 回答
237 浏览

google-apps-script - 如何启用编辑谷歌脚本代码

当我从谷歌表单打开谷歌脚本编辑器时,我看不到代码,也无法编辑代码。我只看到 5 个空行。这可能与我的计算机上安装 Javascript 的问题有关吗?

0 投票
1 回答
525 浏览

google-apps-script-editor - 如何在客户端创建和推送新文件?

简单地在目录中制作文件不会将它们添加到项目中。有没有办法确保它们与项目的其余部分一起被推送,或者我注定要在 Web 编辑器中创建它们然后拉取?

0 投票
1 回答
598 浏览

javascript - 如何在 Google Apps Script HTMLService 中设置链接?(错误与accounts.google.com的连接被拒绝)

我正在尝试使用 Apps Script 方法在 Google Apps ScriptsetContent()中添加一个简单index.html文件的链接。

我得到了链接,但是当我单击它时,它不起作用,以我的语言显示此消息“与 accounts.google.com 的连接已被撤回”。

我知道这很简单,但我对 HTML 知之甚少,在寻找类似问题后,没有找到解决方案或类似用途的代码。任何帮助将不胜感激!

0 投票
1 回答
245 浏览

javascript - Google Sheet Script Editor - 如何正确格式化他们的数字?

所以我正在尝试使用脚本编辑器格式化我的数字以包含百分号

“valuetoCheck”是我试图改变的目标

当错误率大于 10 % 时,我会将这些电子邮件发送给我的同事

'J1' 基本上是通过使用公式 (=max(C:C)) 从工作表中提取的,并且它们在实际的谷歌工作表本身中已经是百分比格式

我应该如何格式化该 J1 以便它可以在电子邮件中以正确的百分号显示?

当前代码在电子邮件中生成以下消息..

报告的最大违约率为:0.020380774742397016

如果操作得当,这个数字应该是 2%