電子書籍の厳選無料作品が豊富!

次のようなコードで10の平均と20の平均はエラーにならないのですが75の時のみエラーになります
Sheets(SN).Cells(gyou, 22)のセルにはすべて数字があるのですがエラーになります。

エラー”1004”アプリケーション定義またはオブジェクト定義のエラー

au = 100
sk1 = 10
sk2 = 20
sk3 = 75
If WorksheetFunction.Sum(Range("V90:V99")) <> 0 Then
Sheets(SN).Cells(au, 24).Value = Application.WorksheetFunction.Average(Sheets(SN).Range(Cells(au - (sk1 - 1), 22), _
Sheets(SN).Cells(au, 22)))
End If
If WorksheetFunction.Sum(Range("V75:V99")) <> 0 Then
Sheets(SN).Cells(au, 25).Value = Application.WorksheetFunction.Average(Sheets(SN).Range(Cells(au - (sk2 - 1), 22), _
Sheets(SN).Cells(au, 22)))
End If
If WorksheetFunction.Sum(Range("V25:V99")) <> 0 Then
Sheets(SN).Cells(au, 26).Value = Application.WorksheetFunction.Average(Sheets(SN).Range(Cells(au - (sk3 - 1), 22), _
Sheets(SN).Cells(au, 22)))
エラーの原因を教えてくださいよろしくお願いします。

A 回答 (1件)

具体的な実数字に置き換えてやってみるとうまく行くようだった。


シート名SN->Sheet1
au-->100
sk3-->75
22列はA列に
最後のIf WorksheetFunction.Sum以下の部分のコードを、手作業で上記に変えて実行してみた。
Sub test01()
'Sheets("Sheet1").Cells(100, 26).Value =
MsgBox Application.WorksheetFunction.Average(Sheets("Sheet1").Range(Cells(28, 1), _
Sheets("Sheet1").Cells(100, 1)))
End Sub
A28:A100で文字セル混入、空白セル混入でも動いたが、全セル空白だとエラーになった。
22列の22行目から100行目まではデータが入ってますか?
ーー
If WorksheetFunction.Sum(Range("V25:V99")) <> 0
V列の25行から89行までと平均計算対象の22列目の28行目から100行目まで列と行とも範囲が違うがこれで良いのですか。
    • good
    • 0
この回答へのお礼

V列の23~25までの1個がデータが抜けていました。
訂正をしてテストしたら上手くいきました。
25ではなく22ですね
ありがとうございました

お礼日時:2011/04/04 16:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!