這是我正在嘗試撰寫回圈的代碼。
- 用外行的話來說,我基本上是在嘗試為單元格分配來自不同作業表的值,但以陣列的形式。
計數器是指當前作業表中的當前行。
iRow 也是如此,但對于另一張紙也是如此。
該值指的是列。
因此,下面的代碼為當前作業表上的一個單元格分配另一個作業表單元格的值。
現在我手動輸入這些陳述句來分配值,這就是為什么我想撰寫一個回圈,這樣我就不必每次都輸入同一個陳述句框。
mArray(counter, 25) = dArray(iRow, 18)
mArray(counter, 26) = dArray(iRow, 19)
mArray(counter, 27) = dArray(iRow, 20)
mArray(counter, 28) = dArray(iRow, 21)
mArray(counter, 29) = dArray(iRow, 22)
mArray(counter, 30) = dArray(iRow, 23)
mArray(counter, 31) = dArray(iRow, 24)
mArray(counter, 32) = dArray(iRow, 25)
mArray(counter, 33) = dArray(iRow, 26)
mArray(counter, 34) = dArray(iRow, 27)
mArray(counter, 35) = dArray(iRow, 28)
mArray(counter, 36) = dArray(iRow, 29)
mArray(counter, 37) = dArray(iRow, 30)
mArray(counter, 38) = dArray(iRow, 31)
mArray(counter, 39) = dArray(iRow, 32)
mArray(counter, 40) = dArray(iRow, 33)
mArray(counter, 41) = dArray(iRow, 34)
mArray(counter, 42) = dArray(iRow, 35)
下面是我創建的回圈,但我不作業。
Dim a As Integer, b As Integer
For a = 25 To 42
For b = 18 To 35
mArray(counter, a) = dArray(iRow, b)
Next b
Next a
請做建議。
uj5u.com熱心網友回復:
恭喜。
您偶然發現了一種特殊的回圈:嵌套回圈(一個回圈在另一個回圈內)。
讓我向您展示您撰寫的程式:
For a = 25 To 42
For b = 18 To 35
do_something(a,b)
Next b
Next a
當您啟動它時,將執行以下操作:
do_something(25,18)
do_something(25,19) ' inner loop increases
do_something(25,20) ' inner loop increases
do_something(25,21) ' inner loop increases
do_something(25,22) ' ...
do_something(25,23)
do_something(25,24)
do_something(25,25)
do_something(25,26)
do_something(25,27)
do_something(25,28)
do_something(25,29)
do_something(25,30)
do_something(25,31)
do_something(25,32)
do_something(25,33)
do_something(25,34)
do_something(25,35) ' inner loop is finished, now let's increase the outer loop
do_something(26,18)
do_something(26,19)
do_something(26,20)
...
do_something(26,35)
do_something(26,18)
do_something(26,19)
...
do_something(26,35)
do_something(27,18)
...
(up to:)
do_something(42,35)
如您所見,在嵌套回圈的情況下,您將運行內部回圈。一旦這個完成,你轉到外回圈中的下一項,整個內回圈再次執行,...,所以它一直到外回圈完成,內回圈,嗯,x數量次:-)
顯然,這不是您想要的:在您的情況下,a 和 b 之間有一個簡單的關系:a = b 7
所以,這就是你可以做的:
For a = 25 To 42
do_something(a,a - 7)
Next a
或者:
For b = 18 To 35
do_something(b 7,b)
Next b
祝你好運
uj5u.com熱心網友回復:
你在這里做的是一個回圈,在另一個回圈中。所以你的代碼會這樣做:
a = 25
b = 18 -> 35
...
a = 26
b = 18 -> 35
這不是你想要的。我會告訴這樣做:
For i = 0 to x
mArray(counter, a i) = dArray(iRow, b i)
Next i
換句話說,只需執行一個從 0 到 x 的回圈,然后通過將 i 的值添加到 a 和 b 變數來呼叫您的方法。這樣,您的代碼將執行以下操作:
i = 0
a = 25
b = 18
---
i = 1
a = 26
b = 19
---
...
---
i = 10
a = 35
b = 28
希望這可以幫助。如果您有不清楚的地方,請隨時詢問。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/458955.html
上一篇:回圈VlookupVBA
