【发布时间】:2020-07-03 17:22:46
【问题描述】:
这是我正在运行的脚本的一个示例:
function onFormSubmit(e) {
var date = e.values[0];
var user = e.values[1];
var busUnit = e.values[2];
var body = "Request for Add-On form submission" +"\n\n"+"Date:\t\t\t\t"+date +"\n"+ "Employee Email:\t\t"+user +"\n"+"Business Unit:\t\t"+busUnit +"\n\n" +"Form Responses:\t\t" + "https://docs.google.com/spreadsheets/d/ID/";
if (busUnit=="Acme")
{
MailApp.sendEmail("admin@acme.com", "Request for Add-On Submission",body);
}
if (busUnit=="fakename")
{
MailApp.sendEmail("admin@fakename.com", "Request for Add-On Submission",body);
}
if (busUnit=="fakename2")
{
MailApp.sendEmail("admin@fakename.com", "Request for Add-On Submission",body);
}
}
function getColIndexByName(colName) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var numColumns = sheet.getLastColumn();
var row = sheet.getRange(1, 1, 1, numColumns).getValues();
for (i in row[0]) {
var name = row[0][i];
if (name == colName) {
return parseInt(i) + 1;
}
}
return -1;
}
function emailStatusUpdates() {
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getActiveRange().getRowIndex();
var Email = "alladmins@fakename.com";
var subject = "Add-On Request Update";
var body = "The Fake Team has updated the status of the latest request.\n\nStatus: " + sheet.getRange(row, getColIndexByName("approval status")).getValue();
body += "\n\nRequest: " + sheet.getRange(row, getColIndexByName("What are you requesting to have approved?")).getValue();
body += "\n\nDescription: " + sheet.getRange(row, getColIndexByName("Provide a brief description")).getValue();
//body += "\n\nNotes: " + sheet.getRange(row, getColIndexByName("Notes")).getValue();
//body += "\n\nURL: "+ "https://docs.google.com/spreadsheets/d/ID/";
MailApp.sendEmail(Email, subject, body, {name:"The Fake Team"});
}
function onOpen() {
var subMenus = [{name:"Send Approval Status", functionName: "emailStatusUpdates"}];
SpreadsheetApp.getActiveSpreadsheet().addMenu("Send Status Update", subMenus);
}
我想启用最后 2 个body += 行。当我这样做时,我收到此错误:
异常:范围的起始列太小。在 emailStatusUpdates(Code:45:99)
我尝试将此行更改为var row = sheet.getRange(1, 1, 1, 4, numColumns).getValues();,但随后出现此错误:
异常:参数(数字、数字、数字、数字)与 SpreadsheetApp.Sheet.getRange 的方法签名不匹配。 在 getColIndexByName(代码:30:19) 在 emailStatusUpdates(代码:45:113)
【问题讨论】:
-
错误出现在哪一行?
标签: google-apps-script google-sheets