有誰知道為什么我在IF陳述句中得到一個下標超出范圍的錯誤。我只是在學習陣列,所以我只能認為這與陣列有關。
Dim CARMA2 As Worksheet
Dim Assignments As 作業表
Sub data2()
Dim arr() As Variant
Dim CAR() As Variant
arr = Array(Worksheets("Assignments").UsedRange)
CAR = Array(Worksheets("CARMA2").UsedRange)
Dim i As Variant
For x = LBound(CAR, 1) To UBound(CAR, 1)
For i = LBound(arr, 1) To UBound(arr, 1)
如果 arr(i, 5) = CAR(x, 1) And arr(i, 7) = """" Then
arr(i, 7) = CAR(x, 3)
結束 If
Next i
Next x
End Sub
uj5u.com熱心網友回復:
要把一個范圍內的所有值放入一個二維陣列中,把范圍的Value屬性分配給一個Variant,比如
Dim arr As Variant
arr = Worksheets("Assignments").UsedRange.Value
你可以使用Dim arr() as Variant,但這是不必要的。它只是把陣列中的每個元素都脅迫成一個變數。但是Dim arr As Variant將創建一個變體陣列(而不是變體的陣列),并且元素將被適當地型別化。
當你創建這種陣列的時候,它是基數1的陣列。所以你的3、5和7需要考慮到這一點。
Sub data2()
Dim arr As Variant
Dim CAR As 變數
Dim x As Long, i As Long.
arr = Worksheets("Assignments").UsedRange.Value
CAR = Worksheets("CARMA2").UsedRange.Value
For x = LBound(CAR, 1) To UBound(CAR, 1)
For i = LBound(arr, 1) To UBound(arr, 1)
如果 arr(i, 5) = CAR(x, 1) And arr(i, 7) = """" Then
arr(i, 7) = CAR(x, 3)
結束 If
Next i
Next x
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324162.html
標籤:
