在vba中为excel宏创建一个循环

时间:2013-07-23 20:52:42

标签: excel vba loops

我在Excel中录制了一个宏,它从电子表格的一页中的某些单元格中获取数据,并以不同的顺序将它们复制到页面。它单独完成每个单元格,并且很长。

但是它只对第一页中的一行数据执行此操作。

如何将此单个宏转换为复制相同数据但从每行复制到新页面的循环?

我没有包含宏代码,因为它很长,但必要时可以这样做。

由于

2 个答案:

答案 0 :(得分:0)

您可以省略代码以仅显示相关部分,或者将模型宏编码为仅解决您的问题。

让我们把你的问题想象成一个sub,在这种情况下被高度省略:

Sub OmittedSub()
    ' Do stuff
End Sub

你可以创建新的sub来多次调用它,这个新的sub将是你要调用的那个:

Sub LoopOmittedSubs()
    Dim i As Integer

    ' Loop to call your macro routine multiple times
    For i = 1 To 100
        OmittedSub
    Next
End Sub

如果您需要传递一个值,例如您的宏不知道要影响哪一行,您需要告诉它,您可以像这样传递循环变量:

Sub OmittedSub(iRow As Integer)
    ' Do stuff for row number iRow
End Sub

Sub LoopOmittedSubs()
    Dim i As Integer

    ' Loop to call your macro routine multiple times
    For i = 1 To 100
        OmittedSub i
    Next
End Sub

这个答案是VBA的基础知识。我不知道如何更好地回答你的问题而不知道你已经尝试过什么,你怎么尝试等等......

答案 1 :(得分:0)

Raybarg为您提供了该问题的基本解决方案。我不确定“某个单元格”是什么意思,这是否意味着它们具有一定的价值,或者有正常的顺序,如A5,A10,A15?

在这两种情况下,您可能会使用Raybarg的代码和条件语句。

您应该包含您的代码,它会提供您实际想要实现的内容以及错误位置的一些提示。