首页 > 解决方案 > 我的“隐藏工作表”脚本是否有错误?

问题描述

当我是管理员和用户时,这仅适用并隐藏工作表“财务”,我希望管理员有权访问工作表,而非管理员使用将其隐藏。我不完全确定这是否可能使用一个客户脚本,但如果是这样,请告诉我我做错了什么。

这是我过去 3 周一直在工作的东西,我是谷歌脚本的新手,所以任何帮助都将不胜感激,但我绝不是专家,但理论上这是可行的。

function onOpen() {
  var adminUsers = ['maiceo@******.com','nick@*****.com','ash@******.com','justinp@*****.com'];
  var Users = ['lorit@*****.com','zachp@******.com','devonc@******.com','rileev@*****.com','maiceoh@*******.com'];

  if (adminUsers.indexOf(Session.getEffectiveUser().getEmail()) >= 0) {
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Finances').showSheet()
  }

  if (Users.indexOf(Session.getEffectiveUser().getEmail()) >= 0) {
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Finances').hideSheet()
  }
}

我希望 admiUsers 有查看能力,而用户没有,但要么全部要么什么都没有。我希望它在您打开文档时像钥匙卡授权一样工作。

标签: google-apps-script

解决方案


回答:

为了让用户运行触发器,他们需要对工作表具有编辑权限。

更多信息:

根据Google 文档,只有具有编辑权限的用户才能运行绑定到 Google 表格的触发器:

onOpen(e) 在用户打开用户有权编辑的电子表格、文档、演示文稿或表单时运行。

您需要要求所有用户都具有编辑权限才能执行此操作。

参考:


推荐阅读