我做了定製子前一陣子來顯示3D陣列的一部分:
Public Sub Print2D_of_3D_Array(ByVal ArrayT As Variant, _
ByVal FixedDim As Integer, _
ByVal FixedDimValue As Double, _
ByRef Sheet_to_PrintOn As Worksheet, _
Optional ByVal DeleteSheet As Boolean = False)
If DeleteSheet Then Set Sheet_to_PrintOn = DeleteAndAddSheet(Sheet_to_PrintOn)
Select Case FixedDim
Case Is = 1
For i = LBound(ArrayT, 2) To UBound(ArrayT, 2)
For j = LBound(ArrayT, 3) To UBound(ArrayT, 3)
Sheet_to_PrintOn.Cells(i + 1, j + 1) = ArrayT(FixedDimValue, i, j)
Next j
Next i
Case Is = 2
For i = LBound(ArrayT, 1) To UBound(ArrayT, 1)
For j = LBound(ArrayT, 3) To UBound(ArrayT, 3)
Sheet_to_PrintOn.Cells(i + 1, j + 1) = ArrayT(i, FixedDimValue, j)
Next j
Next i
Case Is = 3
For i = LBound(ArrayT, 1) To UBound(ArrayT, 1)
For j = LBound(ArrayT, 2) To UBound(ArrayT, 2)
Sheet_to_PrintOn.Cells(i + 1, j + 1) = ArrayT(i, j, FixedDimValue)
Next j
Next i
Case Else
MsgBox "error"
End Select
End Sub
所以,你不得不使用這樣的:
Call Print2D_of_3D_Array(MyArray, 1, 2, WorksheetVariable, False)
所以基本上答案是「否」,沒有可能避免For循環...對嗎? – Noldor130884
@ Noldor130884:基本上! ;)至少,沒有我所知道的,但我已經堆積了好幾個飛行小時,所以我很高興有沒有除了一旦你做出這樣的定製程序...... – R3uK