从MAC上的excel vba代码打开网络文件使用脱机文件

时间:2014-10-22 07:54:15

标签: excel macos vba excel-vba

我在Mac OS中运行宏表现出色。 其中一个宏使用 Workbooks.Open 在网络文件夹(SharePoint站点)中打开文件。 如果有连接到网络,它工作正常。 如果Mac配置文件的用户在网络连接打开或关闭的情况下运行第一次的宏,它也可以正常工作。如果没有连接,Mac会在第一次运行时返回错误。 但问题是,在用户成功使用文件(宏)并连接一次后, Workbooks.Open 在第二次运行宏并且网络连接断开时不会返回任何错误。 我在Open方法之后立即添加了exit子命令,并且可以看到在excel上打开了相同的网络文件,其状态为“Offline file”。该文件与以前在首次使用网络打开时使用宏时打开的文件相同。但是,此时未从网络驱动器获取文件,因为此时没有与网络的连接。 试图从Mac文件系统中找到该文件,但没有成功。

什么创建了脱机副本以及它存储在何处? 如何通过vba代码删除脱机文件或如何防止excel(或Mac)再次创建它?

BR,

MikkoT

1 个答案:

答案 0 :(得分:0)

您应该在SMB协议中禁用oplock。

  

Oplocks是机会锁,客户端性能增强   这需要Windows客户端和SMB之间的合作   服务。如果SMB服务支持oplock,则客户端可以请求   在本地缓存文件,以便执行读写操作   缓存的文件而不是直接在服务器上。这节省了网络   带宽并提高SMB客户端的性能。如果是另一个SMB   客户端请求访问该文件,SMB服务通知   oplock的持有者,该客户端应该从其中写入更改   缓存回SMB服务。 SMB服务不会让另一个   客户端可以访问该文件,直到第一个客户端完成   写入。

enter image description here