我正在尝试从Google Apps脚本中的其他功能调用函数,但在测试期间,它会在记录器中不断返回“undefined”。以下是有一些解释的功能。
此处的功能将获取活动用户的电子邮件地址。当它自己运行时,它返回电子邮件地址就好了。 (我添加了logger.log行,以便您可以尝试查看。
function getUser() {
//Uses the base class to get acive user's email
var email = Session.getActiveUser().getEmail();
//Logger line is for testing only and would be removed once final
Logger.log(email);
}
此功能的目的是将附加信息添加到电子表格的最后一行,以用于某些列。这将被称为onFormSubmit。我试图通过调用上面的函数来获取活动的用户电子邮件地址。我知道我可以取消注释变量requestUser上面的一行,但我希望调用其他执行特定任务的函数,试着学习并扩展我的理解。我想。
function addToPTO(){
var ss1 = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss1.getSheetByName('Form Responses');
var data = sheet.getDataRange().getValues();
var data2 = sheet.getDataRange().getLastRow();
//var getUserInfo = Session.getActiveUser().getEmail();
var reqeustUser = getUser();
Logger.log(reqeustUser);
for (var i = 0; i < data.length; i++) {
var row = data[i];
var status = row[8];
var comment = row[9];
if (status == "") {
data[i][8] = "Pending";
}
}
sheet.getDataRange().setValues(data);
}
答案 0 :(得分:1)
您可以执行以下两项操作之一:
在function getUser()
它看起来像这样:
function getUser() {
// moved Logger one line above, it will not log if it occurs AFTER the return statement
Logger.log(email);
return Session.getActiveUser().getEmail();
}
function addToPTO(){
var ss1 = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss1.getSheetByName('Form Responses');
var data = sheet.getDataRange().getValues();
var data2 = sheet.getDataRange().getLastRow();
var reqeustUser = getUser();
Logger.log(reqeustUser);
for (var i = 0; i < data.length; i++) {
var row = data[i];
var status = row[8];
var comment = row[9];
if (status == "") {
data[i][8] = "Pending";
}
}
sheet.getDataRange().setValues(data);
}