2016-03-23 13 views
0

最初の行が列ヘッダーで、最初の列が行ラベルである表があります。私はこれらが一致するすべてのセルにTRUEを入れました。列行の一致からリストを作成

セルがTRUEの一致する行名のみを含むリストを、各列ごとに別々のシートに生成する必要があります。

シート1でB13B15、およびC12TRUEているのであれば、その後、シート2は、その下に121315その下で列B、および列Cが表示されます。文字と数字の代わりに、私が入力したラベルを使用することを除いて。

私はこれでどこから始めるべきか、私の頭を包み込むことはできませんでした。そのため、正しい方向のポインタがあれば感謝します。

私は、列ヘッダーと行ラベルの定義された名前を作成しようとしました。

答えて

3

私はあなたのテーブルのレイアウトを完全には理解していませんが、私がテストした次の例のように思えば、このVBAが動作するはずです。

シート1テーブル形式

enter image description here

シート2出力結果

enter image description here

VBA

Sub test() 

Dim i As Long 
Dim j As Long 
Dim lRow As Long 
Dim lCol As Long 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Set ws1 = Sheets("Sheet1") 
Set ws2 = Sheets("Sheet2") 
lRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row 
lCol = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column 

With ws1 

    For j = 2 To lCol 
    ws2.Cells(1, j).Value = .Cells(1, j).Value 

     For i = 2 To lRow 

      If .Cells(i, j).Value = True Then 

       ws2.Cells(ws2.Rows.Count, j).End(xlUp).Offset(1, 0).Value = .Cells(i, 1).Value 'This will probably need to be changed to 'i' to represent the row number for your purposes 

      End If 

     Next i 

    Next j 

End With 

End Sub 
+0

クリスタルボールをよく世話してください。それは確かに私より優れています。 – Jeeped

+0

それはレンタルで、1つのチャージしかありませんでした;) –

関連する問題