2017-08-03 165 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 
相关问题