且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

编译excels保存在excel中不同选项卡下的文件夹下,并使用excel名称重命名该选项卡

更新时间:2023-02-02 13:11:38

以下是您可以使用的宏:

Here is a macro you can use:

Sub CombineWorkbooks()

    Dim strFolder As String

    Dim strFile As String

    Dim strSheet As String

    Dim wbkS As Workbook

    Dim wbkT As Workbook

    On Error GoTo ErrHandler

   使用Application.FileDialog(4)

       如果。显示则为
            strFolder = .SelectedItems(1)& " \"

       否则为
           发出哔哔声b
           退出Sub¥
       结束如果是
   结束与$
    Application.ScreenUpdating = False

    Application.Cursor = xlWait

    Application.DisplayAlerts = False

   设置wbkT = Workbooks.Add(xlWBATWorksheet)

    strFile = Dir(strFolder&" * .xls *")

   做strFile<> ""

       设置wbkS = Workbooks.Open(strFolder& strFile)

        wbkS.Worksheets(1).Copy After:= wbkT.Worksheets(wbkT.Worksheets.Count)

        strSheet = wbkS.Name

        strSheet = Left(strSheet,InStrRev(strSheet,"。") - 1)

        wbkT.Worksheets(wbkT.Worksheets.Count).Name = strSheet

        wbkS.Close SaveChanges:= False

        strFile = Dir

   循环

    wbkT.Worksheets(1)。删除

ExitHandler:

    Application.DisplayAlerts = True

    Application.Cursor = xlDefault

    Application.ScreenUpdating = True

   退出Sub¥
ErrHandler:

    MsgBox Err.Description,vbExclamation

   恢复ExitHandler

End Sub

Sub CombineWorkbooks()
    Dim strFolder As String
    Dim strFile As String
    Dim strSheet As String
    Dim wbkS As Workbook
    Dim wbkT As Workbook
    On Error GoTo ErrHandler
    With Application.FileDialog(4)
        If .Show Then
            strFolder = .SelectedItems(1) & "\"
        Else
            Beep
            Exit Sub
        End If
    End With
    Application.ScreenUpdating = False
    Application.Cursor = xlWait
    Application.DisplayAlerts = False
    Set wbkT = Workbooks.Add(xlWBATWorksheet)
    strFile = Dir(strFolder & "*.xls*")
    Do While strFile <> ""
        Set wbkS = Workbooks.Open(strFolder & strFile)
        wbkS.Worksheets(1).Copy After:=wbkT.Worksheets(wbkT.Worksheets.Count)
        strSheet = wbkS.Name
        strSheet = Left(strSheet, InStrRev(strSheet, ".") - 1)
        wbkT.Worksheets(wbkT.Worksheets.Count).Name = strSheet
        wbkS.Close SaveChanges:=False
        strFile = Dir
    Loop
    wbkT.Worksheets(1).Delete
ExitHandler:
    Application.DisplayAlerts = True
    Application.Cursor = xlDefault
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description, vbExclamation
    Resume ExitHandler
End Sub