Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌电子表格脚本帮助-列循环_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 谷歌电子表格脚本帮助-列循环

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

我有一个脚本,它接受电子邮件地址、角色和组电子邮件地址,并将其添加到谷歌应用程序组。我有它目前只为一行工作。如何让它在不为所有行编写单独脚本的情况下为多行(即25行)工作?此处列出了脚本:

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。你要么理解,要么不理解。猜测如何将数字相加,或者做循环,并不会让你走得很远。网络上的示例教程非常好,旨在帮助您学习。祝你好运