看板 Office 關於我們 聯絡資訊
軟體: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