Excel 我如何在退出之前增长I和j?

Excel 我如何在退出之前增长I和j?,excel,vba,Excel,Vba,这是我的密码: Sub Horizon() Dim i As Double, j As Double, x As Double, y As Double Sheets("B").Range("C3:G10000").ClearContents x = InputBox("Number of rows in A") y = InputBox("Number of rows in B") For i = 3 To x For j = 3 To y If Sheets("B").C

这是我的密码:

 Sub Horizon()
Dim i As Double, j As Double, x As Double, y As Double
Sheets("B").Range("C3:G10000").ClearContents
x = InputBox("Number of rows in A")
y = InputBox("Number of rows in B")
For i = 3 To x
    For j = 3 To y
     If Sheets("B").Cells(j, 1) = Sheets("A").Cells(i, 1) And Sheets("B").Cells(j, 2) >= Sheets("A").Cells(i, 2) And Sheets("B").Cells(j, 2) <= Sheets("A").Cells(i, 3) Then
     Sheets("B").Cells(j, 3) = Sheets("A").Cells(i, 4)
     Sheets("B").Cells(j, 4) = Sheets("A").Cells(i, 5)
     Sheets("B").Cells(j, 5) = Sheets("A").Cells(i, 6)
     Sheets("B").Cells(j, 6) = Sheets("A").Cells(i, 7)
     Sheets("B").Cells(j, 7) = Sheets("A").Cells(i, 8)
     Else

     Exit For
     End If
     Next j
     Next i
End Sub 
Sub-Horizon()
尺寸i为双精度,j为双精度,x为双精度,y为双精度
图纸(“B”)。范围(“C3:G10000”)。清晰目录
x=输入框(“A中的行数”)
y=输入框(“B中的行数”)
对于i=3到x
对于j=3到y

如果表(“B”).单元格(j,1)=表(“A”).单元格(i,1)和表(“B”).单元格(j,2)>=表(“A”).单元格(i,2)和表(“B”).单元格(j,2)进行了快速测试:输出显示“8”。。所以不知道你为什么说i=i+1不起作用?它“应该”;)

[编辑]啊,刚刚注意到,你说“在”出口之前。。。嗯,那更有趣。。。[/编辑]

[/edit2]或者不。。。刚试过。。为我工作

  Sub test()
    For i = 1 To 10
       If i = 5 Then
         i = i + 1
         Exit For
       End If
    Next i
    MsgBox (i)
  End Sub

这个循环伤了我的眼睛。你为什么需要退出以进入
?你想退出外部循环吗?@Jens:同意O.O.然而,他所要求的应该有效——可能不是编写代码的最佳方式——但应该有效(如我下面的测试所示)。他没有告诉我们还有别的事情发生;)请看。这可能会使问题变得显而易见,你将能够自己回答。@Valentin,你想用你的代码做什么?这实际上更多的是一个注释而不是一个答案。注释太大,没有代码片段,这是毫无意义的。我的回答是一个完全可行的、完整的测试用例,试图向OP展示做i=i+1实际上是可行的。这不是一个草率的回答,也不是不完整的。它是关于主题的,并且不是“危险的错误”。您的“测试”根本没有试图解决用户的问题,这似乎是一个笨拙的if语句。显然,循环和递增是有效的,OP的问题是“在退出之前,我如何才能下一个i和下一个j?”用户需要重新构造程序以实现这一点,而不是显示他们可以使用
i=i+1
  Sub test()
    For i = 1 To 10
       If i = 5 Then
         i = i + 1
         Exit For
       End If
    Next i
    MsgBox (i)
  End Sub