如何判斷 server 上的 excel 檔案被開啟
- 帖子
- 29
- 主題
- 8
- 精華
- 0
- 積分
- 58
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-3-2
- 最後登錄
- 2015-6-1
|
如何判斷 server 上的 excel 檔案被開啟
有人可以解答一下, 要如何判斷 server 上的 excel 檔案被開啟
原因是因為如 server 上的 excel被別人開啟後,
要判斷是否能將資料存入到 server 上的 excel 檔案
若被別人開啟, 則跳出 message 通知 檔案己被開啟, 並放棄存檔
excel VBA 可以做的到嗎? |
|
|
|
|
|
|
|
- 帖子
- 29
- 主題
- 8
- 精華
- 0
- 積分
- 58
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-3-2
- 最後登錄
- 2015-6-1
|
想請問 GBKEE 版主
底下有些不太懂, 可以解答一下嗎
Sub SetAttribue()
Dim strFile As String
strFile = "c:\temp\test.xlsx"
If Not IsWorkBookOpen(strFile) Then
SetAttr strFile, vbReadOnly ' 不太懂這邊的意思
MsgBox "file now readonly"
Else
MsgBox "File is already open"
End If
End Sub
Function IsWorkBookOpen(FileName As String) As Boolean
Dim ff As Long
Dim ErrNo As Long
On Error Resume Next
ff = FreeFile() ' 不懂語法
Open FileName For Input Lock Read As #ff ' 不懂 #ff 意思
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function |
|
|
|
|
|
|
|
- 帖子
- 29
- 主題
- 8
- 精華
- 0
- 積分
- 58
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-3-2
- 最後登錄
- 2015-6-1
|
回復 2# diolin
我知道可以開的起來, 但被別人開啟後我又要存檔就會有問題啊
所以才要一開啟檔案,就判斷檔案是否被別人開啟
這對多人可能同時使用一個檔案, 有很大的關係 |
|
|
|
|
|
|
|
- 帖子
- 29
- 主題
- 8
- 精華
- 0
- 積分
- 58
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-3-2
- 最後登錄
- 2015-6-1
|
回復 3# GBKEE
想請問 GBKEE 版主
底下有些不太懂, 可以解答一下嗎
Sub SetAttribue()
Dim strFile As String
strFile = "c:\temp\test.xlsx"
If Not IsWorkBookOpen(strFile) Then
SetAttr strFile, vbReadOnly ' 不太懂這邊的意思
MsgBox "file now readonly"
Else
MsgBox "File is already open"
End If
End Sub
Function IsWorkBookOpen(FileName As String) As Boolean
Dim ff As Long
Dim ErrNo As Long
On Error Resume Next
ff = FreeFile() ' 不懂語法
Open FileName For Input Lock Read As #ff ' 不懂 #ff 意思
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select |
|
|
|
|
|
|
|