Excel VBA向循环中添加另一个变量

Excel VBA向循环中添加另一个变量,excel,vba,Excel,Vba,我有一个方法CreatePage()。我想通过循环变量来传递方法。我已经设法让它为一个变量工作: Sub main() Dim rng As Range Dim aSht As Worksheet Set aSht = ThisWorkbook.Sheets("Sheet1") For Each rng In aSht.Range("A5:A8") CreatePage(rng) Nex

我有一个方法
CreatePage()
。我想通过循环变量来传递方法。我已经设法让它为一个变量工作:

Sub main()

   Dim rng As Range
   Dim aSht As Worksheet
    
   Set aSht = ThisWorkbook.Sheets("Sheet1")
    
   For Each rng In aSht.Range("A5:A8")
        CreatePage(rng)
    Next rng

End Sub
我需要它按如下方式循环:
CreatePage(“A5”、“C6”)
CreatePage(“A6”、“C7”)
CreatePage(“A7”、“C8”)

我被困在如何通过两个变量。到目前为止,我已经做到了这一点,但我认为我的方向不对:

Sub main()

   Dim rng As Range
   Dim rng2 As Range
   
   Dim aSht As Worksheet
   Dim bSht As Worksheet
    
   Set aSht = ThisWorkbook.Sheets("Sheet1")
   Set bSht = ThisWorkbook.Sheets("Sheet2")
    
   For Each rng In aSht.Range("A5:A8")
        For Each rng2 In bSht.Range("C6:C9")
             CreatePage(rng,rng2)
    Next rng, rng2

End Sub

我已经调整了
CreatePage()
以容纳两个变量。我对获取for循环中的第二个变量感到困惑。有人能帮忙吗?

只需要一个简单的改变

   For Each rng In aSht.Range("A5:A8")
        For Each rng2 In bSht.Range("C6:C9")
             CreatePage rng, rng2
        Next rng2
   Next rng

嵌套的for循环在这里没有帮助。您只需要循环一个区域,然后从另一个区域中选择所需的单元格

Sub-main()
变暗rng As范围
变暗rng2 As范围
将aSht设置为工作表
将bSht设置为工作表
Set aSht=ThisWorkbook.Sheets(“Sheet1”)
设置bSht=ThisWorkbook.Sheets(“Sheet2”)
变暗idx为长
设置rng=aSht.范围(“A5:A8”)
设置rng2=bSht.范围(“C6:C9”)
'您可能希望在此处添加代码以检查范围的大小和形状
对于idx=1到rng.Cells.Count
CreatePage rng.Cells(idx)、rng2.Cells(idx)
下一个
端接头

另外,把
()
放在
CreatePage(rng,rng2)
@ScottHoltzman@chrisneilsen谢谢大家,这帮了大忙,但我认为还没有完全奏效。来自
rng
的单元格似乎成功通过,但来自
rng2
的变量没有按预期进行迭代。它只经过最后一个单元。例如:
CreatePage(“A5”、“C9”)
CreatePage(“A6”、“C9”)
CreatePage(“A7”、“C9”)
循环有问题或者我的方法有问题。我需要它按如下方式循环:
CreatePage(“A5”、“C6”)
CreatePage(“A6”、“C7”)
CreatePage(“A7”、“C8”)
@huz我想说还有别的地方出了问题。此代码将调用CreatePage 16次,每对单元格调用一次。也许是时候向我们展示CreatePage了,也许是在一个新的Q中