[問題] VBA "檔案使用中"的通知關不掉

看板Office作者 (翼をください)時間11年前 (2015/03/30 09:22), 11年前編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
軟體: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來呼叫(不設定引用)且不會出現『檔案使用中』訊息的方法呢? 以上,謝謝!! -- ┌─────────────────────────────┐ 就這樣,終於到了啟程的日子。 和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。 也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.149.121 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1427678556.A.A74.html

03/30 11:34, , 1F
修改workbooks.open內readonly的參數
03/30 11:34, 1F
蘇大! 我需要該檔案是可讀寫的狀態,所以 ReadOnly:=False 對狀況沒有改善 QQ (用Call的狀況下,如果開啟後,該檔案為唯讀或可讀寫有不同做法) ※ 編輯: foolkids (59.120.249.136), 03/30/2015 11:56:09

03/30 12:04, , 2F
那想到是加上Open sFileName For Binary Access Read Lock
03/30 12:04, 2F

03/30 12:05, , 3F
Read As #1的方式來偵測該檔是否已被開啟
03/30 12:05, 3F

03/30 12:06, , 4F
上面的sFileName為變數
03/30 12:06, 4F

03/30 12:08, , 5F
For Input Lock Read 應也可以
03/30 12:08, 5F

03/30 15:17, , 6F
Binary!? 完全沒用過的指令… 先研究看看,謝謝蘇大!
03/30 15:17, 6F
文章代碼(AID): #1L6ALSfq (Office)
文章代碼(AID): #1L6ALSfq (Office)