2017-08-03 214 views
2

我正在嘗試編寫一個簡單的VBA宏,它將採用活動單元格的列和用戶的輸入將一行單元格範圍添加到一起。範圍是通過將用戶輸入的整數添加到活動列並且是結束列來計算的。問題是它給我運行時錯誤'424',並告訴我「對象需要」。當我運行它,並在總和線上生氣。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'一個工作表時,你把'總和(Report.Range(月))' – Jarom

+0

爲什麼不進入'公式'在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 
相關問題