我有一个谷歌电子表格,用于协作,我能够创建一个UI界面,它将从表中获取和更新数据,使用户更容易。
对于我的工作,我需要限制用户只有在分配给他们时才能更新行,我能够做到。但除此之外,我还需要允许管理员分配或更新未分配给它们的行。
我有一张表格,其中包含所有员工的电子邮件地址和管理员标志,供管理员使用。
姓名____________电子邮件_________________管理员
员工1_______emp1@domain.com_____Admin
员工2_______emp2@domain.com_____
员工3_______emp3@domain.com_____
员工4_______emp4@domain.com_____Admin
员工5_______emp5@domain.com_____
员工6_______emp6@domain.com_____
如何在我的脚本中编写一些内容,以便在触发某个功能的用户具有管理员权限时允许我这样做。
我使用Session.getActiveUser()。getEmail()来提取用户的电子邮件地址。我正在创建在Google应用领域中使用的工具。
检查用户是否是该行的所有者的代码,这部分工作正常,但我想要做的是如果用户是管理员,他们基本上会跳过此检查。
if (s.getRange("E4").getValue() != usr()){
msg("Once a Task is assigned to an employee, only assigned employee can make any changes to the Task. Thank you");
return;
}
s = sheet
usr() = function calling to check active user email
如果我可以执行类似countifs的操作,我可以根据电子邮件地址和管理员条件检查计数,如果> = 1继续,如果其0显示错误,则无法进行更改。
请告诉我。
非常感谢帮助。
谢谢。
Zooooon
答案 0 :(得分:0)
你在找这样的东西吗?
function myFunction() {
var s = SpreadsheetApp.getActiveSheet();
var usr = Session.getActiveUser().getEmail();
var emails = s.getRange("E2:F").getValues();
for (var i=0;i<emails.length;i++) {
if (emails[i][0] === usr){
if (emails[i][1] === "Admin") {
//Do something when Admin
return;
} else {
//Do something when not admin
return;
}
} else {
//Do something when email not in the list
}
}
}
我假设您的数据在“D:F”
的范围内