2

116 枚のシートを含む Excel ファイルを 1 つのシート ("Tab_Appended") に追加します。次のコードを試してみましたが、動作します。ただし、シートの列 A は Tab_Appended に貼り付けられません。ヘッダー行を除くすべてのデータを Tab_Appended にコピーするには、コードをどこで変更する必要がありますか?

ところで、「ケース」でいくつかのシートを除外しましたが、すべてのシートをリストするのではなく、文字列「凡例」を含むすべてのシートを除外するよりエレガントな方法はありますか?

Sub SummurizeSheets()
    Dim ws As Worksheet
    Dim lastRng As Range
    Dim lastCll As Range

    Application.ScreenUpdating = False
    Sheets("Tab_Appended").Activate

    For Each ws In Worksheets
        Set lastRng = Range("A65536").End(xlUp).Offset(1, 0)
        Select Case ws.Name
        Case "Tab_Appended", "Legende 1", "Legende 2", "Legende 3", "Legende 4", "Legende 5", "Legende 6", "Legende 7", "Legende 8", "Legende 9", "Legende 10", "Legende 11", "Legende 12", "Legende 13"
        'do nothing
        Case Else
            Set lastCll = ws.Columns(1).Find(What:="*", After:=ws.Range("A1"), SearchDirection:=xlPrevious)
            ws.Range("A2:" & lastCll.Address).Copy
            Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
             'add sheet name before data
            lastRng.Resize(lastCll.Row - 1) = ws.Name
        End Select
    Next ws

    Columns("A").SpecialCells(xlBlanks).EntireRow.Delete (xlUp)

    Application.ScreenUpdating = True

End Sub
4

2 に答える 2