我在Excel中录制了一个宏,它从电子表格的一页中的某些单元格中获取数据,并以不同的顺序将它们复制到页面。它单独完成每个单元格,并且很长。
但是它只对第一页中的一行数据执行此操作。
如何将此单个宏转换为复制相同数据但从每行复制到新页面的循环?
我没有包含宏代码,因为它很长,但必要时可以这样做。
由于
答案 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的代码和条件语句。
您应该包含您的代码,它会提供您实际想要实现的内容以及错误位置的一些提示。