我创建了一个可写的工作簿的只读快捷方式。这样做,当我手动单击快捷方式和实际文档时,我可以同时打开同一工作簿的单独的只读和可写实例。但是我似乎无法在VBA代码中复制它。尝试使用VBA代码从只读实例打开相同的工作簿会关闭只读实例,只留下可写的实例,EG
Workbook.Open filename:=ActiveWorkbook.FullName, editable:=True
从只读实例运行此实例会终止实例并将其替换为可写实例。我希望能够同时拥有两者,但不知道如何做到这一点?原因是我希望能够将只读实例中所做的更改发布为可写入实例,用户只需要对可写实例进行写入访问几秒钟,VBA代码有足够的时间打开它,发布更改并快速保存并退出并重新激活只读实例。这允许团队中的多个人几乎同时对同一工作簿进行更改,而不必受到“共享工作簿”的限制,同时还能够同时查看文档。
但如果有人在两者之间做出改变怎么办?好吧,如果用户打开文档后,如果其他人做了任何更改,则会告诉用户重新加载只读实例,该文档只调用上面的代码,其中editable = false。
非常感谢
答案 0 :(得分:2)
此方法将打开当前实例中的workbork,因此正如您所说,将替换当前打开的workbork。您需要创建一个新的Excel应用程序引用并使用它来打开它:
Dim xlApp As New Excel.Application
Dim xlWrkBk As Excel.WorkBook
xlApp.WorkBooks.Open FILENAME, , READ ONLY (True/False)
Set xlWrkBk = xlApp.ActiveWorkbook
xlApp.Visible = True
希望这会带你走向正确的方向:)
答案 1 :(得分:0)
打开工作簿可编辑,然后将SaveCopyAs打开到具有临时文件名的临时文件夹(必须是不同的文件名),然后打开只读副本