我在 Excel 中记录了一个宏,它从电子表格的一页中的某些单元格中获取数据,并以不同的顺序将它们复制到页面中。它单独执行每个单元格,并且很长。
但是,它只对第一页中的一行数据执行此操作。
如何使这个单个宏成为一个循环,将相同的数据从每一行复制到新页面中?
我没有包含宏代码,因为它很长,但如有必要可以这样做。
谢谢
您可以省略代码以仅显示相关部分,或编写模型宏以仅解决您的问题。
让我们将您的问题想象为一个子问题,在这种情况下被高度省略:
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 的基础知识。我不知道如何更好地回答你的问题,而不知道你已经尝试了什么,你是如何尝试的等等......
Raybarg 为您提供了该问题的基本解决方案。我不确定您所说的“某些单元格”是什么意思,是指它们具有一定的价值还是像 A5、A10、A15 那样按常规顺序排列?
在这两种情况下,您可能都会使用 Raybarg 的代码和条件语句。
您应该包含您的代码,它提供了一些关于您实际想要实现的目标以及错误在哪里的提示。