0

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

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

如何使这个单个宏成为一个循环,将相同的数据从每一行复制到新页面中?

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

谢谢

4

2 回答 2

0

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

让我们将您的问题想象为一个子问题,在这种情况下被高度省略:

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 的基础知识。我不知道如何更好地回答你的问题,而不知道你已经尝试了什么,你是如何尝试的等等......

于 2013-07-24T05:01:45.470 回答
0

Raybarg 为您提供了该问题的基本解决方案。我不确定您所说的“某些单元格”是什么意思,是指它们具有一定的价值还是像 A5、A10、A15 那样按常规顺序排列?

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

您应该包含您的代码,它提供了一些关于您实际想要实现的目标以及错误在哪里的提示。

于 2013-07-24T06:39:05.520 回答