2017-05-26 7 views
0

非常に単純なUDFを作成しようとしていますが、これは入力範囲をとり、別の範囲を返します。ここでは、各出力範囲のセル入力範囲セルと同じである必要があり、プラス1は、私が範囲を変換してUDFから返します

Public Function Addone(rng As Range) As Range 

    Dim i As Integer, N As Integer 
    N = rng.Count 

    For i = 1 To N 
     Addone.cells(1,i) = rng.cells(1,i) + 1 
    Next i 

End Function 

を持っているものである範囲「A1:C1が」想定の数字の1,2,3が含まれています。次に、ワークシートに移動してセルの範囲(出力範囲 "A2:C2")を選択し、Addone(A1:C1)を入力してCtrl + Shift + Enterを押します。しかし、出力セルは#VALUEで埋められています。

他の回答herehereを確認しましたが、私のケースでは機能しませんでした。どんな助けもありがとうございます。

答えて

2

出力を範囲として定義してセル内で評価することはできません 出力タイプを2倍に変更する必要があります。関数の内部では、一時的な配列を定義し、そのサイズに基づいてNを再定義し、返される配列に代入します。次はすべきです。これが解決すれば教えてください。

Public Function Addone2(rng As Range) As Double() 

    Dim temp() As Double 
    Dim i As Integer, N As Integer 
    N = rng.Count 
    ReDim temp(1 To N) As Double 
    For i = 1 To N 
     temp(i) = rng.Cells(1, i) + 1 
    Next i 
    Addone2 = temp 
End Function 
関連する問題