Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 任何人都可以使用循环执行宏,该循环可以将多行转换为列_Vba_Excel - Fatal编程技术网

Vba 任何人都可以使用循环执行宏,该循环可以将多行转换为列

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

为什么我有一个录制的宏,我试图使用循环使用它,这样我就可以在一次点击中转换多个行和列。我的想法是,我有10000行,1000列,其中有电子邮件。我想使用宏,使用do while或loop将我的行数据转换为列。我已经记录了宏,但它只适用于一行和一列。代码在那里

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