1

ワークシートやマクロ ワークシートにリンクされている他の関数で使用したい、かなり単純な VBA 関数を作成しました。ユーザーが引数として値または範囲 (基本的にはセル参照) を入力できるようにしています。

Public Function TSTT(arg As Range) As Single
    Dim a25 As Variant
    a25 = 522.6 - (arg / 155.2867)

    TSTT= a25
End Function

問題は、Range を型として (上記のように) 使用し、ユーザーが式に値を入力すると、戻り値として #VALUE が返されることです。

引数を単一として宣言すると、ユーザーが値またはセル参照を入力すると機能します。

最後に、引数を Variant として宣言すると、両方のタイプの入力でも機能します。

両方のタイプの入力を許可するには、バリアントまたは予想されるタイプを使用する必要がありますか?

4

1 に答える 1

2

関数ヘッダーで引数を宣言する必要はありません。ユーザーが与えたものをテストできます。ユーザーが提供したものを実際にテストできます。

Function foo(r) As String
    If TypeOf r Is Range Then
      v = r.Value
    Else
        v = r
    End If
    '
    '   more stuff
    '
End Function
于 2013-09-17T01:02:56.937 に答える