VBAを使用して配列の中央値を計算すると、Excel 2010のクラッシュに問題がある(Windows XPではExcelが応答しません)中央値関数はゼロと評価される。残念ながら、問題は特定のコードセットのコンテキストでしか再現できません(デバッグのために単純化バージョンを書き込もうとすると問題は発生しません)。それにもかかわらず、誰かがこの問題を興味深いと思うのは、次の理由からです。中央値がゼロ(VBA)の場合のクラッシュ(プログラムが応答しない)
application.worksheetfunction.medianが呼び出されている間、クラッシュが発生します。 VBAはその通話を通過できません。それはその後のゼロダイビングの問題ではありません。
アレイが非常に小さい(たとえば8)場合でもクラッシュが発生します。
効果的な回避策は、各項目に小さな定数を追加して中央値を計算し、すぐに各配列値から定数を減算することです。これは正しい答えを出すように見えます。しかし、Excelがこの回避策を必要としていると私は心配しています。
この問題は、ソートを伴う別のワークシート関数、つまりパーセンタイル関数でも発生します。
私はこの問題を複製できません。問題を引き起こすコードを投稿できますか? –
申し訳ありません。 URLのフォーマットが正しくありません。ここで再試行です。 http://www.bgsu.edu/departments/psych/faculty/randers/temp/median%20problem.xlsm – user1113568
@CharlesWilliamsご協力いただきありがとうございます。この問題にはVBAコードがスプレッドシートとやりとりされるため、xlsmファイル全体(http://www.bgsu)をダウンロードできるURLがここにあります。edu/departments/psych/faculty/randers/temp/median%20problem.xlsm(マークダウンの書式設定を使用してコードだけをスタックアウトフローに含める方法を理解しようとします) – user1113568