在Excel VBA中使用一维或二维数组

我有几个有关在VBA中使用数组的基本问题,我还没有find答案。

首先,有没有办法在Excel VBA中指定一维行向量?

我是在Excel VBA中使用数组的新手,并且已经将行向量和列向量定义为二维数组,如下例所示

'Define a Local Row Vector ReDim aArray(1 to iCntRows, 1 to 1) 'Define a Local Column Vector ReDim aArray(1 to 1, 1 to iCntCols) 

其次,这是最佳做法吗? 我应该使用一维数组吗?

谢谢蒂姆

你打算把数组复制到一个范围,比如

 Range(somerange) = aArray 

那么,是的,使用二维数组

您必须使用转置function从2d数组转换。

 new_array = Application.Transpose(Sheet1.Range("A2:A100").Value) 

new_array是一个1d数组。

 Sub tt() Const SZ As Long = 1000 Dim arr(), x ReDim arr(1 To SZ) For x = 1 To SZ arr(x) = x Next x 'add to sheet (as a row) Sheet1.Range("a1").Resize(1, SZ).Value = arr 'add to sheet (as a column) 'note there is an upper limit when using transpose of around 65k Sheet1.Range("a5").Resize(SZ, 1).Value = Application.Transpose(arr) End Sub