2017-08-07 16 views
0

私はExcelのVBA関数を自分のニーズに合わせて学習して書いていますが、これは簡単ですが、わかりませんが、Excelを返すだけです#VALUEをエラーメッセージとして返す) データを返すためにvba関数を書きましたが、最後まですべて正常です。私はコレクション(選択)の結果を持っていますが、関数を同じ行のセルに結果を書き込ませることはできません。 forループ内range.offsetを使用しようとする - 私:関数からの結果をオフセット付きセルに返す

For t = 1 To chosen.Count 
Application.Caller.Offset(0, t).Value = chosen(t) 
Next t 

をので、1ためには、私が選んだの値が(1)右、同じ行のセルに戻されたいです。 2の場合、右側の2番目のセルに移動します。

答えて

1

式として使用されるUDFまたはユーザー定義関数は、別のセルの値に影響を与えることはできません。

ここで、範囲の値の配列を配置する場合は、単に出力のセルを選択し、Ctrl-Shift-Enterで確定します。

この配列を返す関数の使用:A1活性を有するI1:

Function myArr() As Variant() 
myArr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) 
End Function 

私は選択A1を。

enter image description here

それから私は、数式バーに

=myArr() 

を入力し、Ctrlキーを押しながらShiftキーを押しながら入力する代わりに入力を打ちます。 Excelは9つのセルすべてに式を入力し、式の周りに{}を入れます。アレイは、それらの9つのセルに配置されます。私は、コレクションの代わりに、配列を持っている

enter image description here

+0

、それは問題ではありませんか? 'myArr = selected'または' myArr = selected() 'で関数を終了するとエラーが発生します。 – Ugur

+0

コレクションを配列にプッシュしても機能しました。とにかくありがとう。 – Ugur

関連する問題