作者foolkids (翼をください)
看板Office
標題[問題] VBA "檔案使用中"的通知關不掉
時間Mon Mar 30 09:22:33 2015
軟體: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
→ soyoso: 修改workbooks.open內readonly的參數 03/30 11:34
蘇大! 我需要該檔案是可讀寫的狀態,所以 ReadOnly:=False 對狀況沒有改善 QQ
(用Call的狀況下,如果開啟後,該檔案為唯讀或可讀寫有不同做法)
※ 編輯: foolkids (59.120.249.136), 03/30/2015 11:56:09
→ soyoso: 那想到是加上Open sFileName For Binary Access Read Lock 03/30 12:04
→ soyoso: Read As #1的方式來偵測該檔是否已被開啟 03/30 12:05
→ soyoso: 上面的sFileName為變數 03/30 12:06
→ soyoso: For Input Lock Read 應也可以 03/30 12:08
→ foolkids: Binary!? 完全沒用過的指令… 先研究看看,謝謝蘇大! 03/30 15:17