2011-07-21 8 views
1

私は、この最初のテーブルのようにフォーマットされたスプレッドシートをたくさん持っています(ただし、レコード数が多く、レコード数が異なります)。すべての適切な情報を取得する必要がありますが、Accessにインポートするには2番目のテーブルのようにフォーマットする必要があります。これはできますか?ありがとう。テーブルを複数の列に変換する方法

..........パート1つのパート2パート3パート4
テスト1..5
試験2 ............. X ... ...... 5
テスト3..2 ......... x .................. x
テスト4 ... .................... x ......... x
Test 5..x ............ .................. 2

試験1第1部5
試験2パート2×
試験2部3 5
試験3部分1 2
試験3部分2×
試験3部分4×
試験4パート3×
試験4部4×
試験5パート1×
試験5部4 2

答えて

2

ここに一つの方法ですそれをやる。また、範囲ごとのFor Eachループを使用することもできます。

Dim workingRange1 As Range, workingRange2 As Range 

Set workingRange1 = Sheets("Sheet1").UsedRange 
Set workingRange2 = Range("PutStuffHere") 


For i = 0 to workingRange1.Rows.Count - 2 
    For j = 0 to workingRange1.Columns.Count - 2 
    If Not IsEmpty(workingRange1.Cells(i+1, j+1)) 
     workingRange2.Offset(0, 0) = workingRange1.Cells(i+1, 1) 
     workingRange2.Offset(0, 1) = workingRange1.Cells(1, j+1) 
     workingRange2.Offset(0, 2) = workingRange1.Cells(i+1, j+1) 
    End If 
    Set workingRange2 = workingRange2.Offset(1,0) 
    Next j 
Next i 
関連する問題