2017-08-03 21 views
2

アクティブなセルの列とユーザーの入力を受け取り、単一の行に複数のセル範囲を追加する単純なVBAマクロを作成しようとしています。範囲は、ユーザーがアクティブな列に入力する整数と最後の列を加算して計算されます。問題は、私に実行時エラー '424'を与え、 "Object required"を教えてくれることです。私はそれを実行し、合計行に怒って取得します。VBAセルの範囲を合計

ここに私のコードです。私はちょうどVBAで始まっているので、それは難しいことではありません....そうですか?

Sub Food() 
Dim first As Variant 
Dim last As Integer 
Dim days As Integer 
Dim month As Variant 
Dim total As Double 
first = ActiveCell.Column 
days = InputBox("Days in the month?") 
last = first + days 
month = Range(Cells(first, 4), Cells(last, 4)) 
total = Excel.WorksheetFunction.Sum(Report.Range(month)) 
Worksheets(1).Cells(1, 13).Value = total 
End Sub 
+0

は '合計(Report.Range(月))' – Jarom

+0

ワークシートをreport'です'A13で、結果を入力する代わりに? –

+0

'total = Excel.WorksheetFunction.Sum(month)'、monthはこのインスタンスの範囲ではない値の配列です。 –

答えて

0

エラーは、範囲を合計しようとしている方法です。

total = WorksheetFunction.Sum(month) 

VBAで問題が発生した場合は常に、それを分離して解決してみてください。例えば、あなたのケースでは、このようなものは、分離例として、役立ったでしょう:あなたは `置くとき`式を入力することではない理由を

Option Explicit 

Sub TestMe() 

    Dim rngRange As Range 
    Set rngRange = Range("A1:A5") 

    'Any of these is ok: 
    Debug.Print WorksheetFunction.Sum(rngRange) 
    Debug.Print WorksheetFunction.Sum(Range("A1:A5")) 
    Debug.Print WorksheetFunction.Sum(1, 2, 3) 
    Debug.Print WorksheetFunction.Sum(Array(1, 2, 3)) 
    Debug.Print WorksheetFunction.Sum(Array(1, 1, 545), Array(-2)) 

End Sub 
関連する問題