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

时间:2015-06-24 15:18:04

标签: excel vba

我正在尝试在VBA中为excel编写一个允许用户输入一系列单元格的宏。然后,我希望宏总结所有单元格,并将它们输入到单元格R32中。

到目前为止,我附上了我为其编写的代码。当我运行宏时,我可以选择我的单元格范围。

然而,我接收到错误消息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

2 个答案:

答案 0 :(得分:4)

此处的问题是您使用Range(userResponse)功能{/ 1}}。

变量Sum已经是userResponse,您不需要再将其指定为一个。

尝试使用以下代码行,您会发现它按预期工作:

Range

答案 1 :(得分:2)

如果您在底部的.Address内添加了Range(),会发生什么情况,如下所示:

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

那会做你想要的吗?