带有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)
为您的Sum
function。
variablesuserResponse
已经是一个Range
,你不需要再次指定它。
试试这一行代码,你会发现它按预期工作:
Range("R32").Value = Application.WorksheetFunction.Sum(userResponse)
如果你在Range()
的底部添加了.Address
,如下所示:
Range("R32").Value = Application.WorksheetFunction.Sum(Range(userResponse.Address))
那会做你想要的吗?