Discussion:
怎樣知道某個workbook是否已經開啟
(时间太久无法回复)
Limking
2007-04-09 04:00:02 UTC
Permalink
請問,在VBA中,怎樣知道某個workbook是否已經開啟,謝謝!
璉璉
2007-04-09 14:21:16 UTC
Permalink
可以用 WorkBooks 集合物件去列舉每一個 Name 或 FullPath
會得到檔名


--
請移轉至微軟程式設計、系統管理使用新技術論壇討論區,提供網友回覆後即時簡訊、電子郵件通知:
程式開發設計:http://forums.microsoft.com/msdn-cht/default.aspx?siteid=14
操作管理技術:http://forums.microsoft.com/technet-cht/default.aspx?siteid=23
Post by Limking
請問,在VBA中,怎樣知道某個workbo
chijanzen
2007-04-11 12:22:01 UTC
Permalink
你好:

請參考範例
http://www.vba.com.tw/plog/post/1/29
--
天行健,君子以自強不息
地勢坤,君子以厚德載物

http://www.vba.com.tw/plog/


"Limking" 來函:
Post by Limking
請問,在VBA中,怎樣知道某個workbook是否已經開啟,謝謝!
Limking
2007-04-13 02:54:00 UTC
Permalink
是不是另一種方法,好可惜,打不開這個網頁,可能是被大陸封殺了吧
"chijanzen" 來函:
Post by chijanzen
請參考範例
http://www.vba.com.tw/plog/post/1/29
--
天行健,君子以自強不息
地勢坤,君子以厚德載物
http://www.vba.com.tw/plog/
"Limking" 來函:
Post by Limking
請問,在VBA中,怎樣知道某個workbook是否已經開啟,謝謝!
chijanzen
2007-04-13 08:06:04 UTC
Permalink
你好:

這個網站是在台灣的

貼出網址中的其中一個方法

Private Declare Function lOpen Lib "kernel32" Alias "_lopen" ( _
ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Private Declare Function lClose Lib "kernel32" Alias "_lclose" ( _
ByVal hFile As Long) As Long
Private Const OF_SHARE_EXCLUSIVE = &H10


Private Function IsFileOpen(rFile As String) As Boolean
Dim errnum As Long
Dim lastErr As Long
errnum = -1
hdlFile = lOpen(rFile, OF_SHARE_EXCLUSIVE)
If hdlFile = -1 Then
lastErr = Err.LastDllError
Else
lClose (hdlFile)
End If
IsFileOpen = (hdlFile = -1) And (lastErr = 32)
End Function



範例:判斷 C:\test\test.xls 檔案是否存在

Sub test()
Dim rPath As String
rPath = "C:\test\test.xls"
MsgBox "檔案" & rPath & IIf(IsFileOpen(rPath), "已開啟", "未開啟")
End Sub
--
天行健,君子以自強不息
地勢坤,君子以厚德載物

http://www.vba.com.tw/plog/


"Limking" 來函:
Post by Limking
是不是另一種方法,好可惜,打不開這個網頁,可能是被大陸封殺了吧
"chijanzen" 來函:
Post by chijanzen
請參考範例
http://www.vba.com.tw/plog/post/1/29
--
天行健,君子以自強不息
地勢坤,君子以厚德載物
http://www.vba.com.tw/plog/
"Limking" 來函:
Post by Limking
請問,在VBA中,怎樣知道某個workbook是否已經開啟,謝謝!
Loading...