我有一个代码,我在命名范围内引用变量“k”,然后执行一系列嵌套的“if”循环。但是,我只能将“下一个k”放在子中的一个位置。但是,如果满足某些条件,我还需要代码循环回到下一个k。在添加第二个“Next k”语句时,我得到“Next Without For”错误。
以下是相关的代码段:
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
是的,并且复制了值。有什么建议?提前谢谢。
答案 0 :(得分:0)
您必须使用goto语句。在下一个k之前放置一个标签,让它调用nextK,然后使用goto:
For k In SFR
.....
if someCondition then goto nextK
....
nextK:
next k