返回列表 上一主題 發帖

[發問] 一次批改大量檔案名稱的語法。

回復 1# ziv976688


如果原程式是你自己寫的,那這個對你來說應該不難吧!?

    Sub Ex()
        Dim Path As String, A As String, Oldname As String, Newname As String
        Path = ThisWorkbook.Path  '路徑
        A = Dir(Path & "\*.CSV")
        Do While A <> ""
            Oldname = Path & "\" & A
            A = Replace(A, "基準日:", "")
            A = "539_" & A '新增需求:再將檔案名稱前批改增加 "539_"
            A = Replace(A, ".csv", ".xls")
            Newname = Path & "\" & A
            'Name Oldname As Newname   '改名稱
             With Workbooks.Open(Oldname)
                 .SaveAs Filename:=Newname, FileFormat:=xlNormal   '改副檔案名
                 .Close True
             End With
            Kill Oldname
            A = Dir
        Loop
    End Sub


一次批改大量檔案名稱(程式主檔).rar (9.5 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2019-11-14 00:41 編輯

回復 4# ziv976688


因為你原本的CSV檔,工作表名稱有冒號,違反了工作表名稱的命名方式
所以存檔後再開就會變成這樣了,只要把工作表名稱也改掉就行了,如下


    Option Explicit
    Sub Ex()
        Dim oPath As String, A As String, Oldname As String, Newname As String
        Application.ScreenUpdating = False
        oPath = ThisWorkbook.Path  '路徑
        A = Dir(oPath & "\*.CSV")
        Do While A <> ""
            Oldname = oPath & "\" & A
            A = Replace(A, "基準日:", "")
            A = "539_" & A '新增需求:再將檔案名稱前批改增加 "539_"
            A = Replace(A, ".csv", ".xls")
            Newname = oPath & "\" & A
             With Workbooks.Open(Oldname)
                .Sheets(1).Name = Replace(A, ".xls", "")
                .SaveAs Filename:=Newname, FileFormat:=xlNormal   '改副檔案名
                .Close True
             End With
            Kill Oldname
            A = Dir
        Loop
    End Sub


一次批改大量檔案名稱(程式主檔)_n大.rar (9.82 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 君子如水,隨方就圓,無處不自在。
返回列表 上一主題