在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