如何将表转换为多列

时间:2011-07-21 18:35:55

标签: excel vba

我有大量的电子表格,其格式与第一张表相同(但记录的记录和记录数量不同)。我需要让它获取所有正确的信息,但将其格式化为第二个表,以便导入Access。可以这样做吗?感谢。

..........第1部分第2部分第3部分第4部分 测试1..5
测试2 ............. x ......... 5 测试3..2 ......... x .................. x
测试4 ....................... x ......... x 测试5..x .............................. 2

测试1第1部分5
测试2第2部分x
测试2第3部分5
测试3部分1 2
测试3第2部分x
测试3部分4 x
测试4部分3 x
测试4部分4 x
测试5部分1 x
测试5第4部分2

1 个答案:

答案 0 :(得分: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