【发布时间】:2014-03-07 11:35:43
【问题描述】:
我想在 excel VBA 中循环某个宏。但是,我不知道该怎么做(我尝试过多次但都失败了)。下面代码中的注释是为了显示我想要做什么。代码完美运行,我只希望它循环每个数据块,直到所有数据都转置到第二个工作表中(第一个工作表包含大约 5000 行数据,每 18 行必须转置为 1第二个工作表中的行):
Sub test()
' test Macro
Range("G2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-1]*100"
Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G19"), Type:=xlFillDefault
Range("G2:G19").Select
Range("A2:C2").Select
Selection.Copy
Sheets("Sheet2_Transposed data").Select
Range("A2").Select
ActiveSheet.Paste
'I want to loop this for every next row until all data has been pasted (so A3, A4, etc.)
Sheets("Sheet1_session_data").Select
Range("G2:G19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2_Transposed_data").Select
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("D2:U2").Select
Application.CutCopyMode = False
'Here I also want to loop for every next row until all data has been transposed and pasted (e.g. D3:U3, D4:U4 etc.)
Selection.NumberFormat = "0"
Sheets("Sheet1_session_data").Select
Rows("2:19").Select
Selection.Delete Shift:=xlUp
' Here I delete the entire data chunck that has been transposed, so the next chunck of data is the same selection.
End Sub
希望这个问题可以理解,希望有人能提供帮助。 谢谢。
【问题讨论】:
-
你想循环是什么意思?
Sheet1_session_data中还有其他数据吗?因为在您的代码中,您已经删除了整个Row("2:19")。或者这是否意味着在您遍历所有列之后?你能以某种方式显示样本数据和预期结果吗?我们可以帮助发布屏幕截图,只需提供链接即可。 -
已编辑帖子,我需要转置 5000(或更多)行数据,每 18 行是来自 1 个用户的数据,必须在第二个工作表上转置为 1 行。
-
啊,我明白了。但是,我把它留给@Siddharth Rout。 :D
-
你能给我一个示例数据,以便我给你一个准确的代码和解释吗?
-
查看答案下方的评论。非常感谢您的帮助!