2016-03-22 8 views
-1

私は45列のスプレッドシートを持っています。一部の列には同じタイプの情報が含まれており、これらの列を共通の列ヘッダーの下にグループ化しています。Excelのスプレッドシートを列ヘッダーに基づいて異なるワークシートに分割

例については、下のスプレッドシートを参照してください。上記の例を参照すると

Spreadsheet

、Iは上部列ヘッダ(ない値)に基づいて、三つの異なるワークシート内のスプレッドシートを分割したいです。したがって、すべての情報を含む元のワークシートに加えて、「プライマリ情報」、「セカンダリ情報」および「詳細情報」という3つのワークシートが必要です。

それぞれの新しいワークシートの下で、その特定の列見出しに関連するすべての情報を表示したいとします。 「主情報」というワークシートには、名前、年齢、性別のすべてのフィールドが表示されます。このような何かがあなたのために働く必要があり

答えて

0

...

Option Explicit 

Public Sub Split() 
Dim c, i As Integer 
    c = 1 
Dim ws As Worksheet 

Do Until ActiveSheet.Cells(1, c) = "" 
    Sheet1.Cells(1, c).Select 
    i = ActiveCell.MergeArea.Columns.Count + c - 1 
    Sheet1.Range(Cells(2, c), Sheet1.Cells(Sheet1.UsedRange.Rows.Count, i)).Copy 
    With ActiveWorkbook 
     Set ws = .Worksheets.Add(After:=Sheets(.Sheets.Count)) 
     ws.Name = Sheet1.Cells(1, c) 
    End With 
    ws.Activate 
    ws.Cells(1, 1).Select 
    ActiveSheet.Paste 
    c = i + 1 
    Sheet1.Activate 
Loop 

End Sub 
関連する問題