乔问是否有一种方法可以在宏中确定谁打开了特定的工作簿。他考虑过使用WriteReservedBy属性,但似乎没有他需要的信息。

不幸的是,无法从VBA确定此信息-只是无法访问。 WriteReservedBy属性不会显示谁打开了文件。它显示了谁使用密码保存了工作簿。换句话说,当某人保存工作簿并选择具有修改它的密码时,该文件为“ WriteReserved”。 WriteReservedBy属性包含以WriteReserved状态保存文件的人员的姓名。

如果您只需要知道答案(关于谁打开了文件)

定期收集最简单的打开文件名列表,然后让网络管理员告诉您打开文件的人是最容易的-这些信息保存在网络上,管理员可以访问。

另一个可能的解决方案是向每个工作簿添加一个AutoOpen宏,该宏将一个临时文件写入磁盘,其中包含打开文件的人的名字。宏不仅需要打开临时文件,还需要处理错误情况,例如已经打开的临时文件。然后,其他宏可以访问该临时文件以查看其包含的名称。

VBNet网站可能是答案的另一个地方。此页面上的文章包含可能适用于所需信息的代码:

http://vbnet.mvps.org/index.html?code/network/netfileenum.htm

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2492)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: