Google apps script 谷歌电子表格脚本帮助-列循环
我有一个脚本,它接受电子邮件地址、角色和组电子邮件地址,并将其添加到谷歌应用程序组。我有它目前只为一行工作。如何让它在不为所有行编写单独脚本的情况下为多行(即25行)工作?此处列出了脚本:Google apps script 谷歌电子表格脚本帮助-列循环,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个脚本,它接受电子邮件地址、角色和组电子邮件地址,并将其添加到谷歌应用程序组。我有它目前只为一行工作。如何让它在不为所有行编写单独脚本的情况下为多行(即25行)工作?此处列出了脚本: function addGroupMember() { var userEmail = getUser(); var groupEmail = getGroup(); var member = { email: userEmail, role: getRole() }; mem
function addGroupMember() {
var userEmail = getUser();
var groupEmail = getGroup();
var member = {
email: userEmail,
role: getRole()
};
member = AdminDirectory.Members.insert(member, groupEmail);
Logger.log('User %s added as a member of group %s.', userEmail, groupEmail);
}
function getUser() {
user = SpreadsheetApp.getActiveSheet().getRange('A2').getValue();
return user }
function getRole() {
role = SpreadsheetApp.getActiveSheet().getRange('B2').getValue();
return role }
function getGroup() {
group = SpreadsheetApp.getActiveSheet().getRange('A27').getValue();
return group }
谢谢你的帮助
-Joe不要在GetAnywhere函数中硬编码单元格值,而是使用可以循环的参数。例如:
function getUser(row) {
// "User" is in column A, aka column 1
user = SpreadsheetApp.getActiveSheet().getRange(row,1).getValue();
return user }
看起来getGroup保持原样,因为每个用户都在同一个组中
参数化addGroupMember函数:
function addGroupMember(row) {
var userEmail = getUser(row);
var groupEmail = getGroup(row);
var member = {
email: userEmail,
role: getRole()
};
member = AdminDirectory.Members.insert(member, groupEmail);
Logger.log('User %s added as a member of group %s.', userEmail, groupEmail);
}
然后你可以这样做:
function addAll() {
// assume users in rows 2 - 26, since you may have headers, and row 27 has group
for (var row=2; row<=26; row++) {
addGroupMember(row);
}
}
这里还有很多需要改进的地方,主要是性能方面的原因。看起来您正在学习编程。这不是一个学习计划网站。有很多这样的好网站,参见blog.ted.com/2013/01/29/10-places-where-anywhere-can-learn-to-code/事实上,我以前做过很多Javascript。我只是不知道如何使用多个函数进行for循环。我该怎么做呢?Joe,建议你花点时间来理解for循环和函数。这有点像理解1+1。你要么理解,要么不理解。猜测如何将数字相加,或者做循环,并不会让你走得很远。网络上的示例教程非常好,旨在帮助您学习。祝你好运