檔案開啟另存複本
[i=s] 本帖最後由 cowww 於 2023-5-22 12:00 編輯 [/i]請教論壇的大大們
我想把另存新檔改成先判斷檔案是否有被開啟
如果有,就另存複本
如果沒有,就直接儲存
原先的語法
ThisWorkbook.SaveAs fileName:= _
"\\group.com\dept\備份\123\急件專案狀態追蹤_v2_0.xlsm", WriteResPassword:="6112"
以下是修改的語法,請問哪裡有錯誤
Dim fileName As String
fileName = "\\shl-group.com\dept\急件專案狀態追蹤_v2_0.xlsm"
If IsFileOpen(fileName) Then
Dim copyName As String
copyName = Left(fileName, Len(fileName) - 5) & "_Copy.xlsm"
ThisWorkbook.SaveCopyAs fileName:=copyName, WriteResPassword:="6112"
Else
ThisWorkbook.SaveAs fileName, WriteResPassword:="6112"
End If
[attach]36408[/attach] [i=s] 本帖最後由 quickfixer 於 2023-5-23 05:59 編輯 [/i]
你程式碼有少,isfileopen不是內建的功能
應該還要有一個function isfileopen(filename as string),自建的副程式 [b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=121261&ptid=23999]2#[/url] [i]quickfixer[/i] [/b]
非常感謝quickfixer大大的解惑
GPT給我了這一段語法,測試上是沒有問題的
Function IsFileOpen(filePath As String) As Boolean
Dim fileNum As Integer
fileNum = FreeFile()
On Error Resume Next
Open filePath For Binary Access Read Write Lock Read Write As fileNum
If Err.Number <> 0 Then
IsFileOpen = True
End If
Close fileNum
On Error GoTo 0 [b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=121262&ptid=23999]3#[/url] [i]cowww[/i] [/b]
這個少了結尾
End Function [b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=121304&ptid=23999]4#[/url] [i]准提部林[/i] [/b]
非常感謝准提部林大大的提醒
想說可以執行就沒甚麼注意了
頁:
[1]