软件:Office Excel 版本:2010 我在某个共用的A.xla档写入一个开启特定档案的宏,内容如下: Sub 开Test() Dim RecordFilePath As String RecordFilePath = "F:\OpenTest.xls" Workbooks.Open FileName:=RecordFilePath End Sub 我在另一个B.xls档案写入一个呼叫此程序的宏,内容如下: Sub OpenTest() Application.Run "开Test" End Sub 目前问题在于──如果该特定档案(OpenTest.xls)被他人开启而处于唯读状态时, 会跳出一个‘档案使用中’的Excel通知。 试过使用Application.DisplayAlerts = False 来关闭也没用。 目前可行的方式是在B.xls中引用A.xla,并且将呼叫方式改为: Sub OpenTest() Call 开Test End Sub 这样就不会出现‘档案使用中’的唯读讯息了。 只是因为这样的程序之前已经写好部分功能,如果为了此设定要修改引用, 可能会有很多档案都要重新设定,有点困扰。想知道有没有办法可以── 使用Application.Run来呼叫(不设定引用)且不会出现‘档案使用中’讯息的方法呢? 以上,谢谢!!
作者: soyoso (我是耀宗) 2015-03-30 11:34:00
修改workbooks.open内readonly的参数那想到是加上Open sFileName For Binary Access Read LockRead As #1的方式来侦测该档是否已被开启上面的sFileName为变量For Input Lock Read 应也可以