我有一个SQL语句数组,我循环,执行,获取结果并粘贴。
大多数语句只返回一个值,但其中一个SQL函数返回四个值。我想保留一系列范围,我可以将每个SQL函数的结果粘贴到。
从返回记录集的那一点开始,到我粘贴记录集数据的点是什么样的正确代码,这对于1个值结果和4个值结果有效?我应该使用Something = rs.getrows
??我应该使用什么粘贴语句?
四个值结果将被粘贴到四个单元格的垂直范围内,名为X.
编辑,到目前为止得到了这个:
For i = LBound(SQLFunctionArray, 1) To UBound(SQLFunctionArray, 1)
If UseCurrencyAsArg(i) = True Then
SecondArg = Ccy
Else
SecondArg = FileName
End If
SQLFunctionToCall = SQLFunctionArray(i)
Range(RangeForPasting(i)) = WorksheetFunction.Transpose(GetSQLData(COB, SecondArg, SQLFunctionToCall))
Next
但它不适用于四值SQL结果。 GetSQLData返回rs.getrows
数组
答案 0 :(得分:0)
您可以使用此功能翻转GetRows数组:
Function TransposeGetRows(arr)
Dim nr As Long, nc As Long
Dim r As Long, c As Long
Dim arrOut()
nr = UBound(arr, 2)
nc = UBound(arr, 1)
ReDim arrOut(0 To nr, 0 To nc)
For r = 0 To nr
For c = 0 To nc
arrOut(r, c) = arr(c, r)
Next c
Next r
TransposeGetRows = arrOut
End Function
然后将数组放在表格上:
Range(RangeForPasting(i)).Resize(UBound(arr, 1) + 1, _
UBound(arr, 2) + 1).Value = arr