我在Excel中使用VBA。我希望用戶能夠選擇一組垂直的連續單元格,並將這些單元格的值放入數組中。下面的代碼這樣做,但我不明白爲什麼Debug.Print DatArr(0)打印選定區域上方的一個單元格的值。我究竟做錯了什麼?從範圍開始的Excel VBA數組從-1開始而不是0
Option Explicit
Option Base 0
Sub reconcile()
Dim DatArr As Range
Dim AuxDat As Range
Dim StartCellRange As String
Dim CellCnt As Integer
Set DatArr = Application.InputBox("Select a contiguous range of cells.", "SelectARAnge Demo", Selection.Address, , , , , 8)
CellCnt = DatArr.Count
DatArr.Select
Selection.Offset(0, -1).Select
Set AuxDat = Selection
Debug.Print AuxDat.Count
Debug.Print AuxDat(0)
Debug.Print DatArr(0)
End Sub
作爲索引細胞的集合清楚的一點,所使用的「Option Base」設置不會影響OP代碼中的輸出。 –
@JasonFaulkner .........你是絕對正確的!! .......... ** Option Base **可能已被完全省略,因爲沒有數組正在生成的發佈代碼。 –
不僅如此,Option Base隻影響未指定下限的聲明數組。一個Range.Value數組總是以base 1爲基數,而不管Option Base。 –