【问题标题】:Macro to list active users列出活跃用户的宏
【发布时间】:2020-09-09 06:04:04
【问题描述】:

抱歉,这里是 Google 表格的新手,但具有合理的 vba 经验。

我正在尝试在隐藏的工作表中创建一个活动用户的活动列表,然后可以使用该列表以条件格式和 vlookup 突出显示这些用户的存在。

这可以在表格中使用吗?

到目前为止,我有下面的代码,但还处于早期阶段,这似乎只列出了激活代码的一个用户,而不是全部。 我想我可以理解为什么会这样,但我发现很难找到资源来帮助我(再次 - 表格的新手)。

function GetUserNames() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getSheetByName("ActiveUsers");
// Log the email address of the person running the script.
var email = Session.getActiveUser().getEmail();
Logger.log(email);
//SET CELL A1 TO EMAIL ADDRESS OF ACTIVE USERS
sht.getRange(1,1).setValue(email);
}

我的计划是使用 From 电子表格 - On open trigger 运行它。 这是此类事情的首选吗? 我还没有开始研究隐藏的工作表方面,但假设它可以正常工作,即使我的脚本每次都必须取消隐藏/重新隐藏它?

【问题讨论】:

标签: google-apps-script google-sheets triggers


【解决方案1】:

您应该记住,Session.getActiveUser.getEmail() 仅在特定条件下有效,即您的电子表格的用户应该与电子表格所有者属于同一个 G Suite 域。

另外,您应该记住有两种类型的触发器,简单和可安装;简单触发器有几个限制,可安装触发器是使用创建触发器的用户的凭据执行的。

使用打开的触发器来取消隐藏/重新隐藏工作表、行或列通常是一个坏主意,因为这会影响所有用户,因此您和电子表格用户应该意识到这一点,但恕我直言,甚至意识到这可能是破坏性的。

相关

【讨论】:

  • 感谢@Rubén,这是一个很大的帮助。很抱歉花了这么长时间才发布此回复!
猜你喜欢
  • 2022-07-22
  • 2013-11-12
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多