我在Mac OS中运行宏表现出色。 其中一个宏使用 Workbooks.Open 在网络文件夹(SharePoint站点)中打开文件。 如果有连接到网络,它工作正常。 如果Mac配置文件的用户在网络连接打开或关闭的情况下运行第一次的宏,它也可以正常工作。如果没有连接,Mac会在第一次运行时返回错误。 但问题是,在用户成功使用文件(宏)并连接一次后, Workbooks.Open 在第二次运行宏并且网络连接断开时不会返回任何错误。 我在Open方法之后立即添加了exit子命令,并且可以看到在excel上打开了相同的网络文件,其状态为“Offline file”。该文件与以前在首次使用网络打开时使用宏时打开的文件相同。但是,此时未从网络驱动器获取文件,因为此时没有与网络的连接。 试图从Mac文件系统中找到该文件,但没有成功。
什么创建了脱机副本以及它存储在何处? 如何通过vba代码删除脱机文件或如何防止excel(或Mac)再次创建它?
BR,
MikkoT
答案 0 :(得分:0)
您应该在SMB协议中禁用oplock。
Oplocks是机会锁,客户端性能增强 这需要Windows客户端和SMB之间的合作 服务。如果SMB服务支持oplock,则客户端可以请求 在本地缓存文件,以便执行读写操作 缓存的文件而不是直接在服务器上。这节省了网络 带宽并提高SMB客户端的性能。如果是另一个SMB 客户端请求访问该文件,SMB服务通知 oplock的持有者,该客户端应该从其中写入更改 缓存回SMB服务。 SMB服务不会让另一个 客户端可以访问该文件,直到第一个客户端完成 写入。