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中