【问题标题】:Using script editor to send an email from button in Google Sheets使用脚本编辑器从 Google 表格中的按钮发送电子邮件
【发布时间】:2019-05-05 17:14:13
【问题描述】:

我正在尝试让工作表上的按钮使用脚本发送电子邮件,但我无法让它发送正确的工作表或发送空白电子邮件。

我已经尝试了几个不同版本的脚本,但仍然无法让它做任何我需要它做的事情。

我总共有 3 张工作表 Sheet1 为 Sheet2 收集数据。 Sheet2 包含我需要通过电子邮件发送的数据以及带有用于发送电子邮件的脚本的按钮。第三张表是 UserData,其中包含需要将数据发送到的电子邮件列表。

...
function CustomEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getLastRow();
var UserData = range.getValues();
for (i in UserData) {
var row = UserData[i];
var email = row[1];
MailApp.sendEmail(row[1], "Shift Report", "Have a great Shift");
}
}
...

我希望能够将我的数据输入到 Sheet1 中,然后查看第二张表并点击 sendEmail 按钮。

【问题讨论】:

  • 这个网站上有很多电子邮件示例,稍微研究一下,您会发现很多答案。您可以先在脚本编辑器中调试脚本,因为它包含错误。
  • 一直在进行大量的挖掘工作,但找不到我需要让它工作的细节。我意识到代码中存在错误,这就是我伸出援手的原因,我对工作表和 excel 都非常陌生,不确定我需要什么才能使它工作,所以即使它只是让我知道我的代码为什么不起作用也会有所帮助
  • 也许我做错了。我可以只复制一个活动表并参考另一张表来提取电子邮件并发送吗?
  • 查看 Apps 脚本文档的 trouble shooting section

标签: google-apps-script google-sheets


【解决方案1】:
 function CustomEmail() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getLastRow();

getLastRow() 返回一个整数而不是一个范围。

getLastRow

  var UserData = range.getValues();

由于 range 实际上不是一个范围,所以上面的行不会产生任何值。

  for (i in UserData) {

这种过程应该保留给具有键/值对的对象。而且你应该总是用 var 声明你的变量。

    var row = UserData[i];
    var email = row[1];
    MailApp.sendEmail(row[1], "Shift Report", "Have a great Shift");
  }
}

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多