0

ユーザー定義関数を作成することで、Excel ワークシートをより読みやすく、操作しやすくしようとしています。このような数式を変換しようとしています。

=If(IsErr(GetPivotData(Pivot Look up information here)),0,GetPivotData(Pivot Look up information here))

VBAコードで

pt.GetPivotData(Pivot Look up information here)

VBA のルックアップ クエリの問題を検出できません。上記の式では、これは IsErr 関数で処理されます。IsError(pt.GetPivotData(Pivot lookup information here)) を使用してみましたが、実行時エラー '1004' アプリケーション定義またはオブジェクト定義のエラーでプログラムがクラッシュします。IsError なしでサブルーチンから関数を呼び出すと、この同じエラーが発生します。

VBA でこれらのエラーを検出するにはどうすればよいですか?

4

1 に答える 1

0

簡単に言えば、できません。VBAエディターは間違いがあることを通知しません。また、不注意な場合に手をドリルスルーできるのと同じように、構文が正しい場合はコンパイラーも通知しません。ツールを使用して穴を開けていますが、適切な材料ではありません。

このタイプのエラーは、存在しないオブジェクトまたは設定されていないオブジェクトにアクセスしているときに発生します。デバッガーを使用して各行をステップ実行し、local variablesウィンドウ、場合によってはexecutionウィンドウといくつかのスパイを使用して、何が問題になったかを検出します。

本当に、コードとコンテキストがなければ、それ以上のことはできないと思います。

于 2012-10-18T22:11:41.797 に答える