[[20240723092059]] 『VBAの平均の出し方』(のどか) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『VBAの平均の出し方』(のどか)

E列からI列に入ってる数値の平均値をM列に表示するコードを書きたいのですが、下記のように記述するとデバックが出てしまいます。
直接セルに数式をいれる方法もあるかと存じますが、
エクセルの数式を使ってE列からJ列の平均値をM列に出している状態であり、そこからJ列を削除した平均値を再度M列に出したいという趣旨がございます。
ちなみに、M列に関してはJ列を削除してしまっているため、#REF!とエラーが表示されています。

    Dim i As Long, u As Range
    For i = 5 To Cells(Rows.Count, 5).End(xlUp).Row
  Cells(i, 13) = Application.WorksheetFunction.Average(Range(Cells(i, 5), Cells(i, 9)))
    Next i

実行時エラー"1004"
WorksheetFunctionクラスのAverageプロパティを取得できません。

よろしくお願いいたします。

< 使用 Excel:Excel2021、使用 OS:Windows11 >


「デバックが出て」しまった時の i の値を確認して、その行のE列からI列のデータをチェックしてみては?
例えばE列のみにスペースが入っているような状態でも、上記のエラーは発生する。

(2CV) 2024/07/23(火) 10:28:18


 E〜I列内に#N/A等のエラー値が入っていませんか?

 Cells(i, 13) = Application.WorksheetFunction.Average(Range(Cells(i, 5), Cells(i, 9)))
 を↓に変更したら
 Cells(i, 13) = Application.Average(Range(Cells(i, 5), Cells(i, 9)))
 エラーメッセージ自体は出てこなくなります。
 (結果セルにエラー値は出力されますが。)

 エラー値を除くならまずはE〜I列内にエラー値を出さないような処理をするのが一番だと思います。
(通りすがり助六) 2024/07/23(火) 11:16:22

通りすがり助六様
ご教示くださいましたコードで実行したところ正常に作動いたしました。
大変助かりました。ありがとうございます。

2CV様
ご回答いただきありがとうございます。
(のどか) 2024/07/23(火) 11:23:55


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.