代碼:
Function OpenExcelFile(sPath As String, ByVal sFileName As String, bDisplay As Boolean, sPwd As String) As Integer
'開啟Excel檔案
'Ver 1.05
'完成時間:2007.12.01
'設計:美猴王軟體工作室 www.okexcel.com.cn
'參數說明:
'sPath:檔案絕對路徑;sFileName:Excel檔案名稱;bDisplay:True顯示錯誤資訊;sPwd:檔案開啟密碼
'傳回值:-1:同名檔案已經開啟;-2:檔案不存在或密碼錯誤;0:成功開啟;1:檔案已經被開啟
Dim bOpen As Boolean
Dim sFullName As String
On Error Resume Next
If InStr(LCase(sFileName), ".xls") = 0 Then sFileName = sFileName & ".xls"
sFullName = Workbooks(sFileName).FullName
'檢查是否已經開啟同名的Excel檔案
'如果有sFullName不為空白
On Error GoTo 0
bOpen = False
If sFullName <> "" Then
If LCase(sFullName) = LCase(sPath & "/" & sFileName) Then
bOpen = True
'判斷已經開啟的同名檔案是否本次需要開啟的檔案
OpenExcelFile = 1
'檔案已經被開啟
Else
If bDisplay Then
MsgBox "請首先關閉“" & sFileName & "”檔案!" & Chr(13) & "不能同時開啟同名檔案,這是Excel的規定!", vbOKOnly + vbExclamation, "檔案的開啟錯誤"
End If
bOpen = True
OpenExcelFile = -1
'不能同時開啟同名檔案,這是Excel的規定
End If
End If
If Not bOpen Then
On Error GoTo errOpen
Workbooks.Open Filename:=sPath & "/" & sFileName, Password:=sPwd
On Error GoTo 0
OpenExcelFile = 0
'成功開啟檔案
End If
Exit Function
errOpen:
If bDisplay Then MsgBox Err.Description, vbOKOnly + vbExclamation, "檔案的開啟錯誤"
OpenExcelFile = -2
'檔案不存在或密碼錯誤
On Error GoTo 0
End Function