我正在使用VB在excel中显示大数据。它们出现在A1:A3000。我使用以下代码将A1:A6转置为B1:G1:
sheet.Range("A1:A6").Copy()
sheet.Range("B1").PasteSpecial(Transpose:=True)
它正在运行,但我在向A3000重复此过程时遇到了麻烦。基本上我想将1列x3000行数据转换为6列x 500行数据,即最终结果应该有500行和B列:G
答案 0 :(得分:0)
我只是检查一个空单元格(“”)以决定何时停止。在一开始就确定行数会更有效(而不是每次都检查一个空单元格)但是有3000行这不是什么大问题:
Sub TransA()
Dim i As Long
Dim j As Integer
Application.ScreenUpdating = False
j = 1
For i = 1 To Rows.Count Step 6
If Cells(i, "A") = "" Then
Exit For
Else
Range(Cells(j, "B"), Cells(j, "G")).Formula = _
Evaluate("=TRANSPOSE(A" & i & ":A" & i + 5 & ")")
j = j + 1
End If
Next i
Application.ScreenUpdating = True
End Sub
可以修改它以使用Copy / PasteSpecial,但我喜欢Evaluate
。