带有Range参数的VBA中的SUM函数

我正在尝试在VBA中编写一个macros,允许用户input一系列单元格。 然后,我想让macros将所有单元格汇总起来,并将它们input到单元格R32中。

我附上了迄今为止我写的代码。 当我运行macros,我被允许select我的范围的单元格。

但是,然后我收到错误信息, run time error 1004- method range of object _Worksheet failed 。 这似乎是一个可以快速解决的问题…但是我很困难。 任何帮助将不胜感激。

 Private Sub CommandButton5_Click() Dim userResponse As Range On Error Resume Next Set userResponse = Application.InputBox("select a range with the mouse",Default:=Selection.Address, Type:=8) On Error GoTo 0 If userResponse Is Nothing Then MsgBox "Cancel clicked" Else MsgBox "You selected " & userResponse.Address End If Range("R32").Value = Application.WorksheetFunction.Sum(Range(userResponse)) End Sub 

这里的问题是您正在使用Range(userResponse)为您的Sumfunction。

variablesuserResponse已经是一个Range ,你不需要再次指定它。

试试这一行代码,你会发现它按预期工作:

 Range("R32").Value = Application.WorksheetFunction.Sum(userResponse) 

如果你在Range()的底部添加了.Address ,如下所示:

 Range("R32").Value = Application.WorksheetFunction.Sum(Range(userResponse.Address)) 

那会做你想要的吗?