0

次のユーザー定義 VBA 関数は、特定のエラーを発生させませんが、値を返しません。理由がわかりません。このコードが機能するように修正する方法を誰かが提案できますか? 本当にありがとう!

Public Function mytest(myrange As Range)

myrange(1).Value = myrange(1).Value * 44

mytest = myrange(1).Value

End Function

たとえば、次のようにセルでこの関数を呼び出します。

=mytest(A1)

セル A1 には値、たとえば 10 が含まれます。関数が値 440 を返すことを願っています。

4

1 に答える 1

1

ワークシートで呼び出し/使用するユーザー定義関数は、アプリケーション環境を変更できません (追加: 複雑な win-api 呼び出しなどの外部ヘルプなし)。つまり、値または書式設定のいずれかの他のセルを変更するセルで UDF を使用することはできません。

このように言えば、別のセルを変更する Excel 関数はありませんか?

セルの値を変更する場合は、サブプロシージャを作成して実行する必要があります。

追加: ワークシートで使用する関数は、Excel 関数と同じように動作する必要があります。計算を実行し、値を返します。例えば:

Public Function MyTest(myRange As Range) As Double
    'return a value by assigning it to the function name:
    MyTest = myRange(1).Value * 44
End Function
于 2013-07-03T01:13:41.920 に答える