Sir*_*raj 4 excel vba excel-vba
我在A列中有50000行数据.我需要将每6行数据转换为6列.例如,来自A1:A6的数据必须转换为B1:G1.同样来自A7:A14的数据必须转换为B2:G2.我很感激,如果有人能为此提供VBA代码.
我在A栏中的数据如下所示:
Col A
1
2
3
4
5
6
7
8
9
10
11
12
Run Code Online (Sandbox Code Playgroud)
转置数据必须如下面的col B到col G所示:
Columns B C D E F G
1 2 3 4 5 6
7 8 9 10 11 12
Run Code Online (Sandbox Code Playgroud)
试试这个:
Sub TransposeRows()
Dim rng As Range
Dim i As Long
Set rng = Range("A1")
While rng.Value <> ""
i = i + 1
rng.Resize(6).Copy
Range("B" & i).PasteSpecial Transpose:=True
Set rng = rng.Offset(6)
Wend
Application.CutCopyMode = False
End Sub
Run Code Online (Sandbox Code Playgroud)
从这里得到这个.
你不需要一个宏.在B1输入:
=OFFSET($A$1,COLUMNS($A:A)-1+(ROWS($1:1)-1)*6,0)
Run Code Online (Sandbox Code Playgroud)
然后向上和向下复制:
我方的其他变种:
Sub TransposeRows2()
Dim i&, z&, x&
i = Cells(Rows.Count, "A").End(xlUp).Row
z = 1: x = 1
While z <= i
Range("B" & x).Resize(, 6) = _
WorksheetFunction.Transpose(Range("A" & z).Resize(6))
z = z + 6: x = x + 1
Wend
End Sub
Run Code Online (Sandbox Code Playgroud)
测试:
| 归档时间: |
|
| 查看次数: |
20678 次 |
| 最近记录: |