Vba 任何人都可以使用循环执行宏,该循环可以将多行转换为列
为什么我有一个录制的宏,我试图使用循环使用它,这样我就可以在一次点击中转换多个行和列。我的想法是,我有10000行,1000列,其中有电子邮件。我想使用宏,使用do while或loop将我的行数据转换为列。我已经记录了宏,但它只适用于一行和一列。代码在那里Vba 任何人都可以使用循环执行宏,该循环可以将多行转换为列,vba,excel,Vba,Excel,为什么我有一个录制的宏,我试图使用循环使用它,这样我就可以在一次点击中转换多个行和列。我的想法是,我有10000行,1000列,其中有电子邮件。我想使用宏,使用do while或loop将我的行数据转换为列。我已经记录了宏,但它只适用于一行和一列。代码在那里 Sheets("Mastersheet").Select Range("J2:XFD2").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection
Sheets("Mastersheet").Select
Range("J2:XFD2").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
如果您至少尝试搜索答案和信息,您可以更快地解决问题 代码: 试试这个:
Sub Macro9()
t = 2
Do Until t = 10000
Sheets("Mastersheet").Range("J" & t & ":XFD" & t).Copy
Sheets("Sheet2").Select
Sheets("Sheet2").Cells(1, t).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
t = t + 1
Loop
End Sub
去找一本关于如何编写循环的教程。我们很乐意帮助您解决任何问题,但请您自己完成基本操作。您不需要循环。只需选择所有行,然后复制并粘贴转置。它一次处理多行。请看:这不会起作用,因为它将永远运行→ 无止境的循环。另外,如果您需要计数器(例如,
t
),使用For
循环比使用Do
循环更容易。这就是为什么我建议使用For t=2到10000
循环的原因。因为你不能在这里忘记它。循环末尾的下一个t
自动递增t
。使用For的计数器循环更容易。现在它工作得很好(我测试了它)。但是你也可以使用For to next等:)我使用了loop,因为海报上要求一个。。。
Sub Macro9()
t = 2
Do Until t = 10000
Sheets("Mastersheet").Range("J" & t & ":XFD" & t).Copy
Sheets("Sheet2").Select
Sheets("Sheet2").Cells(1, t).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
t = t + 1
Loop
End Sub