我需要在一个特定列中选择循环定义的行范围,然后将每个块转换为行。
我在A栏中有数据:
row A
1 City_1
2 Street_1
3 StreetNo_1
4 State_1
5 City_2
6 Street_2
7 StreetNo_2
8 State_2
9 City_3
10 Street_3
11 StreetNo_3
12 State_3
等等......我需要接受每一个例如...... "四元数"将这些细胞转化为行。所以期望的输出应该是这样的:
row B C D E
1 City_1 Street_1 StreetNo_1 State_1
4 City_2 Street_2 StreetNo_2 State_2
5 City_3 Street_3 StreetNo_3 State_3
9 City_4 Street_4 StreetNo_4 State_4
我怎么能在Excel VBA中这样做?
答案 0 :(得分:1)
此函数将值从每四行移动到四列。这正是您所需要的。您将把它放在开发人员选项卡中,在visual basic
中Sub MoveValues()
Dim i As Long
Dim j As Long
Dim MyRange As Range
Dim lngLastRow As Long
Set MyRange = Worksheets("Sheet1").Range("A" & "1")
lngLastRow = Cells(65536, MyRange.Column).End(xlUp).Row
j = 1
For i = 1 To lngLastRow Step 4
Worksheets("Sheet1").Range(Cells(i, 1), Cells(i + 3, 1)).Copy
Worksheets("Sheet2").Range("A" & j).PasteSpecial Transpose:=True
j = j + 1
Next
End Sub
答案 1 :(得分:1)
或者,您可以简单地在单元格中编写一个简单的公式。
Sub a2bcde()
ActiveSheet.Range("B1:E" & Int(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row / 4)).Formula = "=OFFSET($A$1, (ROW(1:1)-1)*4+(COLUMN(A:A)-1), 0)"
End Sub
将公式的值传回单元格或复制,选择性粘贴,值。