我在共享驱动器上有一个excel doc,每20秒保存一次活动工作簿。
Sub Save()
ActiveWorkbook.Save
Application.OnTime Now + TimeValue("00:00:20"), "Save"
End Sub
当一个或两个用户使用它时,它可以正常工作。但是,如果三个或更多用户正在使用它,那么它就会开始抛出
运行时错误1004文件被锁定
我相信这种情况正在发生,因为该文档已经被其他用户保存了。有没有办法解决这个错误?例如,有没有办法查看另一个用户是否使用VBA保存到共享工作簿?
或者,如果其他用户对文档进行了更改,是否有办法触发保存事件?非常感谢您的帮助。
答案 0 :(得分:3)
我相信您可以右键单击工作表选项卡,然后选择"查看代码"。在此窗口中,您应该能够输入以下内容:
balances.stream().collect(Collectors.toMap(
Balance::getAccountId,
dailyReturn,
BigDecimal::multiply
));
还有用于检查它是否已被锁定的代码,因此如果您想将上述内容与计时器(如果它被锁定)结合起来,那么您可以执行类似的操作。 ..
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.save
End Sub
编辑:MoondogsMaDawg提出了一个很好的观点。我已更新代码以选择1-10秒之间的随机值(可随意更改)。
编辑#2:找到一个更好的解决方案来获得独家访问并保存它,所以它不应该检查它是否被锁定。
注意:我不经常创建Excel宏,请原谅我的错误。