返回列表 上一主題 發帖

[發問] 檔案開啟另存複本

[發問] 檔案開啟另存複本

本帖最後由 cowww 於 2023-5-22 12:00 編輯

請教論壇的大大們

我想把另存新檔改成先判斷檔案是否有被開啟
如果有,就另存複本
如果沒有,就直接儲存

原先的語法
  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

另存失敗.PNG
2023-5-22 12:00

本帖最後由 quickfixer 於 2023-5-23 05:59 編輯

你程式碼有少,isfileopen不是內建的功能
應該還要有一個function isfileopen(filename as string),自建的副程式

TOP

回復 2# quickfixer

非常感謝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

TOP

回復 3# cowww


這個少了結尾
End Function

TOP

回復 4# 准提部林

非常感謝准提部林大大的提醒

想說可以執行就沒甚麼注意了

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題