脚本将电子邮件作为数字而不是字符串读取

问题描述

我正在尝试遵循本指南(以前从未编程过):

https://www.groovypost.com/howto/google-sheets-send-email-based-on-cell-value/

但它一直给我错误

异常:参数 (number[],String,String) 与 MailApp.sendEmail 的方法签名不匹配。 sendEmail @ Send Email.gs:8

据我所知,这意味着电子邮件值是一个数字。但我不知道如何解决这个问题。

function sendEmail() {
// Fetch the email address
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Client Input").getRange("D2");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = 'Please go to your Issues Tracker for more information'; // Second column
var subject = ' Notification Action required';
MailApp.sendEmail(emailAddress,subject,message);  
}

解决方法

由于 emailRange.getValues() 返回一个二维数组,您需要通过其索引来引用实际的字符串值,在这种情况下,[0][0] 作为数组只有一个值。

var emailAddress = emailRange.getValues()[0][0];

或者,如果您打算使用一个且仅一个电子邮件地址,只需使用:

var emailAddress = emailRange.getValue();

参考:

Class Range | getValues()

JavaScript Arrays