4

多くの質問があり、VBA での範囲/配列変換を扱う多くの回答があります。うまくいく答えを見つけることができなかったので、助けていただければ幸いです。

以下は私がやろうとしていることです:

    Function RangeToArrayToRange(inputRange As Range) As Range
        Dim inputArray As Variant
        inputArray = inputRange
        'operations on inputArray'
        '...'
        Dim outputRange As Range
        outputRange = inputArray
        Set RangeToArrayToRange = outputRange
    End Function

よろしくお願いします。

4

1 に答える 1

6

outputRange が入力される範囲の左上のセルである場合:

outputRange.Resize(Ubound(inputArray,1), _
                   Ubound(inputArray,2)).Value = inputArray

編集:これがあなたがやりたいことだと思います

Function RangeToArray(inputRange As Range) As Variant
   Dim inputArray As Variant
   inputArray = inputRange.Value

   'operations on inputArray
   '...'

   RangeToArray = inputArray
End Function

これをワークシートでユーザー定義関数 (UDF) として使用できます。

  1. 「inputRange」と同じ次元の範囲を選択します (行/列の数が同じ)
  2. 数式バーに「=RangeToArray([yourinputrange])」と入力し、Ctrl+Shift+Enter を押して数式を「配列数式」として入力します。

これは、関数の次元 (上限/下限) を変更していないことを前提としていinputArrayます。

于 2012-06-27T22:17:34.533 に答える