簡體   English   中英

如何將一個文件夾中多個 excel 工作簿中除工作表 1 和 2 之外的所有工作表復制到另一個工作簿中

[英]How to Copy every sheet except sheet 1 and 2 on multiple excel workbook in one folder into another workbook

如果這里有人能幫助我解決這個我找不到解決方案的問題,我真的很感激(抱歉我的英語不好)。

所以我在一個文件夾中有多個 excel。 其中每excel都有相同格式的第1張表供每張表參考,第2張表用於合並數據,第3張表和rest用於要合並的數據。 文件夾中的每個 excel 都有不同數量的工作表。

我想做的是我想將范圍 A27:AJ500 中的數據從第 3 張開始復制到之后的每張工作表中,復制到工作表 1 中的另一個新工作簿中,並將它從單元格 A27 開始一遍又一遍地粘貼到底部並循環每個 excel在文件夾中。

我還沒有足夠的能力編寫自己的腳本,但我設法理解了一些並將其組合到這個腳本中。

Sub Download_Data()

Path = "C:\Users\ASUS\Desktop\Done\"
Filename = Dir(Path & "*.xlsm")

'to open every excel in my folder
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True '--> i only managed to do it right till here

'supposed to copy range in every sheet of excel in my folder into different workbook
For Each ws In thiswoorkbook.Worksheets '--> i try write this code but i am confused to do what i want from here and i know this code is nowhere near true
    With ws
        If .Name <> "GABUNGAN" Then
        range("A27:AJ500").Select
        Selection.copy
        Workbooks("Tes.xlsm").range("A27").PasteSpecial Paste:=xlPasteValues
        End If
    End With
Next ws

Workbooks(Filename).Close
Filename = Dir()
Loop

Application.Goto ActiveWorkbook.Sheets("sheet1").range("A1")

End Sub

我一直在尋找代碼,不僅我無法將其自定義為這段代碼,而且我也無法理解代碼中的錯誤,因此我寫了這個問題。 任何幫助將不勝感激,在此先感謝您的關注,祝您平安無事。

試試這個:(已測試)

Dim sourcewb As Workbook
Dim destwb As Workbook
Dim y As Long
Dim ws As Worksheet
Dim strPath As String, strFilename As String

strPath = "C:\Users\ASUS\Desktop\Done\"
strFilename = Dir(strPath & "*.xlsm")

y = 27
Set destwb = ThisWorkbook
Do While strFilename <> ""
    Set sourcewb = Workbooks.Open(Filename:=strPath & strFilename, ReadOnly:=True)
    For Each ws In sourcewb.Worksheets
        With ws
            If .Name <> "name of reference sheet" And .Name <> "name of consolidation sheet" Then
                .Range("A27:AJ500").Copy
                destwb.Worksheets("sheet1").Range("A" & y).PasteSpecial Paste:=xlPasteValues
                y = y + (500 - 27) + 1
            End If
        End With
    Next ws
    sourcewb.Close False
    strFilename = Dir()
Loop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM