Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel “多重”;下一个变量";在嵌套的if-then循环中_Excel_Loops_Variables_Vba - Fatal编程技术网

Excel “多重”;下一个变量";在嵌套的if-then循环中

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

我有一个代码,在其中引用命名范围内的变量“k”,然后执行一系列嵌套的“if”循环。但是,我只能将“next k”放在子节点的一个位置。但是,如果满足某些条件,我还需要代码循环回下一个k。在添加第二个“nextk”语句时,我得到了“nextwithwithfor”错误

以下是相关的代码片段:

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
可能会重复<就我所知,代码>转到在这里是不必要的。在我看来,可能的重复看起来就像您只想在退出
循环之前退出
<在我看来,代码>转到在这里是不必要的。