我很难从数组返回一组列。我向我的变量数组返回了一条sql select语句。它有16列。我需要获取16列中的12列,才能从数组中的特定行返回到电子表格。我正在使用此代码来获取我的行:
If UBound(Filter(budget, Cells(i, 1).Value, , vbBinaryCompare)) >= 0 And Cells(i, 1).Value <> "" Then
然后如何只获取所需的12列?这些列是数组中的最后12列,它们将始终按照我需要的顺序排列。
先谢谢您的帮助!
这将取决于数组的形状。
如果是一维数组
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()
和
Dim a(10,100)Redim保留a(10,Ubound(a)+1)
之所以这样对齐(一个(列,行)),是因为您只能调整数组的最后一个维度的大小。
因此我们将: a = Filter(Selection,Cells(i,1).Value,vbTextCompare)行= UBound(a,2)列= UBound(a,1)Cells(i,1).Resize(列,行)= 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 =筛选器(选择,单元格(i,1)。值,vbTextCompare)行= UBound(a,1)列= UBound(a,2)单元格(i,1)。调整大小(行,列)= a
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句