我有以下代码
Sub Example()
Dim l1 As Integer
Dim l2 As Integer
Dim l3 As Integer
For l3 = 1 To 2
For l1 = 1 To 2
For l2 = 8 To 9
MsgBox l1 & "-" & l2
Next l2
Next l1
Next l3
End sub
产出:1-8,1-9,2-8,2-9,1-8,1-8,1-9,2-8,2-9.
需求输出: 1-8,1-9,2-8,2-9,1-8,1-9,2-8,2-9,10-18,10-19,11-18,11-19,10-18,10-19,11-18,11-19.
在l3第二循环中,以前一循环的1作为最大增量。
结束子对象
发布于 2022-04-22 12:44:05
只需重复您的循环更改值:
Sub Example()
Dim l1 As Integer
Dim l2 As Integer
Dim l3 As Integer
For l3 = 1 To 2
For l1 = 1 To 2
For l2 = 8 To 9
Debug.Print l1 & "-" & l2
Next l2
Next l1
Next l3
For l3 = 10 To 11
For l1 = 10 To 11
For l2 = 18 To 19
Debug.Print l1 & "-" & l2
Next l2
Next l1
Next l3
End Sub
输出:
1-8
1-9
2-8
2-9
1-8
1-9
2-8
2-9
10-18
10-19
11-18
11-19
10-18
10-19
11-18
11-19
这段代码更容易理解,但您可以使用一个整数循环缩短它,并从IIf中获益:
Sub Example()
Dim l1 As Integer
Dim l2 As Integer
Dim l3 As Integer
Dim l4 As Integer
For l4 = 0 To 9 Step 9
For l3 = 1 To 2
For l1 = 1 To 2
For l2 = 8 To 9
Debug.Print l1 + l4 & "-" & l2 + IIf(l4 = 0, 0, 1 + l4)
Next l2
Next l1
Next l3
Next l4
End Sub
https://stackoverflow.com/questions/71965520
复制相似问题