0

ループして実行し、結果を取得して貼り付けるSQLステートメントの配列があります。

ほとんどのステートメントは 1 つの値だけを返しますが、SQL 関数の 1 つは 4 つの値を返します。各 SQL 関数の結果を貼り付けることができる範囲の配列を保持したいと思います。

レコードセットを返す時点から、レコードセット データを貼り付ける時点までの正しいコードは何でしょうか。これは、1 つの値の結果と 4 つの値の結果で機能しますか? 使用する必要がありますSomething = rs.getrowsか?? そして、どの貼り付けステートメントを使用すればよいですか?

4 つの値の結果は、X という名前の 4 つのセルの垂直方向の範囲に貼り付けられます。

編集、これまでのところ:

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

ただし、4 値の SQL 結果では機能しません。GetSQLData はrs.getrows配列を返します

4

1 に答える 1

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
于 2012-05-29T16:54:04.500 に答える