這將取決於數組的形狀。
如果它是一個一名維陣列
a = Filter(Selection, Cells(i, 1).Value, , vbTextCompare)
rows = UBound(a)
Cells(i, 1).Resize(1, rows) = Application.WorksheetFunction.Transpose(a)
注意WorksheetFunction.Transpose的(a)交換所述陣列的行和列。
多維數組將取決於他們在何處創建。
我們可以認爲它像這樣
數據庫查詢數組:A = recordset.getRows()
而且
暗淡了(10,100)REDIM保留a(10,Ubound(a)+1)
像這樣對齊(列,行),因爲只能重新調整數組的最後一個片段。
因此,我們將: 一個=過濾(精選,將細胞(I,1)。價值,vbTextCompare) 行= UBound函數(A,2) 列= UBound函數(A,1) 細胞(I, 1).Resize(columns,rows)= Application.WorksheetFunction.Transpose(a)
Excel範圍數組是基數爲1,並具有與範圍本身相同的形狀。
a = Range("A1:K200").Value
a(1,1) = cells(1, 1) evaluates to True
這樣你就可以做到這一點
a = Range("A1:K200").Value
Range("A1:K200") = a
或者 A =過濾器(選擇,單元格(1,1).value的,vbTextCompare) 行= UBound函數(一,1) 列= UBound(a,2) 單元格(i,1).Resize(行,列)= a
這引發了一個問題,當您只需要12個時,爲什麼要返回16列? –
有幾個原因:我按照我的sql語句中的一列進行分組,並且使用其他三列來返回工具其他位置的聚合數據。 – Clouse24