Excel “多重”;下一个变量";在嵌套的if-then循环中
我有一个代码,在其中引用命名范围内的变量“k”,然后执行一系列嵌套的“if”循环。但是,我只能将“next k”放在子节点的一个位置。但是,如果满足某些条件,我还需要代码循环回下一个k。在添加第二个“nextk”语句时,我得到了“nextwithwithfor”错误 以下是相关的代码片段:Excel “多重”;下一个变量";在嵌套的if-then循环中,excel,loops,variables,vba,Excel,Loops,Variables,Vba,我有一个代码,在其中引用命名范围内的变量“k”,然后执行一系列嵌套的“if”循环。但是,我只能将“next k”放在子节点的一个位置。但是,如果满足某些条件,我还需要代码循环回下一个k。在添加第二个“nextk”语句时,我得到了“nextwithwithfor”错误 以下是相关的代码片段: Set SFR = SF.Range("a2", SF.Range("a2").SpecialCells(xlCellTypeLastCell)) Set Sheetparent = Control.Rang
Set SFR = SF.Range("a2", SF.Range("a2").SpecialCells(xlCellTypeLastCell))
Set Sheetparent = Control.Range("b2", Control.Range("b2").End(xlDown))
Set SheetControl = Control.Range("a2", Control.Range("a2").End(xlDown))
Set TypeControl = Control.Range("c2", Control.Range("c2").End(xlDown))
Set BDMControl = Control.Range("E2", Control.Range("e2").End(xlDown))
Set ParentControl = Control.Range("f2", Control.Range("f2").End(xlDown))
If r.Value = POp.Name Then
For Each k In SFR
If SFR(k.Row, 6).Value = r.Offset(0, 1).Value Then
For Each b In ParentControl
If SFR(k.Row, 1).Value = ParentControl(b.Row, 1).Offset(0, -1).Value Then
With POp.Range("a2")
.Offset(i, 0).Value = SFR(k.Row, 3).Value
.Offset(i, 1).Value = SFR(k.Row, 4).Value
.Offset(i, 2).Value = SFR(k.Row, 1).Value
.Offset(i, 3).Value = SFR(k.Row, 4).Value
.Offset(i, 4).Value = SFR(k.Row, 6).Value
.Offset(i, 5).Value = SFR(k.Row, 8).Value
.Offset(i, 6).Value = SFR(k.Row, 9).Value
.Offset(i, 7).Value = SFR(k.Row, 10).Value
.Offset(i, 8).Value = SFR(k.Row, 2).Value
.Offset(i, 9).Value = SFR(k.Row, 11).Value
.Offset(i, 10).Value = SFR(k.Row, 13).Value
.Offset(i, 11).Value = SFR(k.Row, 15).Value
End With
i = i + 1
Else
End If
Next b
Else
End If
Next k
Else
End If
所以,问题是,在公式移到下一个SFR k之前,我得到了重复几行的相同值SFR(k.row,[column])。我希望能够告诉宏转到下一个k如果
If SFR(k.Row, 1).Value = ParentControl(b.Row, 1).Offset(0, -1).Value
如果为true,则会复制这些值。有什么建议吗?提前感谢。您必须使用goto语句。在下一个k之前放置一个标签,我们称之为nextK,并使用goto:
For k In SFR
.....
if someCondition then goto nextK
....
nextK:
next k
你必须使用goto语句。在下一个k之前放置一个标签,我们称之为nextK,并使用goto:
For k In SFR
.....
if someCondition then goto nextK
....
nextK:
next k
在我看来,在退出
b
循环之前,Exit For
可能会重复<就我所知,代码>转到在这里是不必要的。在我看来,可能的重复看起来就像您只想在退出循环之前退出
<在我看来,代码>转到在这里是不必要的。