Excel VBA:如何在只读设置中捕获ca更改事件? Excel文件通过SharePoint打开并自动设置为只读

时间:2017-03-28 14:37:44

标签: excel-vba sharepoint vba excel

我有一个* .xlsm文件,可以通过SharePoint访问整个部门。问题是当打开此文件时,它会以只读方式自动打开(可能是因为SharePoint设置)。窗口顶部的提示是:

Server Read-Only This workbook was opened from a server in read-only mode. [Edit Workbook]

  • 我知道如何在打开文件时捕获只读设置并相应地配置我的文件
  • 我知道如何在打开工作簿时提示用户更改只读设置。

这是我的问题:

  • 当用户按下[编辑工作簿]并且文件不再是只读时,我不知道如何捕获事件。

我唯一的解决方法是在每次执行任何代码时不断检查文件的只读设置,由于性能损失我不愿意这样做,但它可能并不总是有效。

所以我很难过。关于如何捕获此事件的任何想法?

1 个答案:

答案 0 :(得分:1)

我找到了答案。

通过SharePoint打开文件时,文件将以只读方式自动打开,并显示黄色提示,询问用户是否要编辑文件。

命令ThisWorkbook.LockServerFile的行为就像按下[Edit Workbook]一样。将其放在Workbook_Open()事件中将在每次打开此文件时执行此命令。问题是如果在本地驱动器上执行此命令,则会返回错误,因此您需要有一些错误处理程序或检测您的环境。

这是MSDN文章的链接: https://msdn.microsoft.com/en-us/library/office/ff838567.aspx