我有一张看起来像这样的表格:
A | B | C | D | E |
----------------------------------------
62| Value1| Value2| | |
345| Value3| Value4| Value5| Value6|
17| Value7| Value0| | |
111| Value8| Value9| ValueA|ValueC |
我想将其转换为这个(A 是标准的,接下来的两个单元格 - B&C、D&E、..):
A | B | C |
-----------------------
62| Value1|Value2|
345| Value3|Value4|
345| Value5|Value6|
17| Value7|Value0|
111| Value8|Value9|
111| ValueA|ValueC|
目前我通过仅转换一行来使用下面的宏,但我希望它具有两个单元格值。
Sub Transform()
Dim rowStr As String
Dim rowIndex As Integer
rowIndex = 1
For Each Cell In Sheet1.Range("A1:E5")
If Cell.Column = 1 Then
rowStr = Cell.Value
ElseIf Not IsEmpty(Cell.Value) Then
Sheet2.Cells(rowIndex, 1) = rowStr
Sheet2.Cells(rowIndex, 2) = Cell.Value
rowIndex = rowIndex + 1
End If
Next Cell
End Sub
我会用这个。
它会自动决定您的数据表有多少行。如果你愿意,你可以通过更改自己设置
Sheet1.Range(Sheet1.Cells(1, 1), Sheet1.Cells(1, 1).End(xlDown))
像这样的列参考
Sheet1.Range("A1:A6")