VBA循环迭代
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA循环迭代相关的知识,希望对你有一定的参考价值。
我需要有关此代码的帮助。它可以工作,但我想把它变成一个循环,而不是手动输入另一行代码。所以基本上没有3块代码,我希望它是一个单独的块。
ActiveCell.Offset(1, 0).Range("A1:D1").Select
Selection.Cut
ActiveCell.Offset(-1, 4).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(2, -4).Range("A1:D1").Select
Selection.Cut
ActiveCell.Offset(-2, 8).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(3, -8).Range("A1:D1").Select
Selection.Cut
ActiveCell.Offset(-3, 16).Range("A1").Select
ActiveSheet.Paste
应该是这样的:
Loop 3{
ActiveCell.Offset(1, 0).Range("A1:D1").Select
Selection.Cut
ActiveCell.Offset(-1, 4).Range("A1").Select
ActiveSheet.Paste
}
我不确定如何迭代VBA中的单元格。谢谢!
编辑:
这是我想要做的。谢谢
1 2 3 4
5 6 7 8 --> 1 2 3 4 5 6 7 8 9 10 11 12
9 10 11 12
答案
你可以不用每次都选择这样做,试试这个:
For i = 1 To 3
ActiveCell.Offset(i, 0).Range("A1:D1").Cut ActiveCell.Offset(0, i * 4)
Next i
另一答案
这个答案与@ Valon的答案基本相同,但我不想继续使用Range("A1:D1")
规范,因为它很不寻常。相反,我正在使用.Resize()
来获取与ActiveCell
相邻的细胞。
Dim i As Long
For i = 0 To 2
ActiveCell.Resize(, 4).offset(i, 0).Cut ActiveCell.offset(0, i * 4)
Next i
以上是关于VBA循环迭代的主要内容,如果未能解决你的问题,请参考以下文章