双击多个单元格范围

时间:2016-01-04 10:36:51

标签: excel vba excel-vba

我试图在有人双击特定范围的单元格时启动宏。我现在得到的完整分包是:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)

If Not Application.Intersect(Target, Range("F5")) Is Nothing Then
cancel = True
Dim GoogleMapsCheckLink As String
GoogleMapsCheckLink = "https://www.google.nl/maps/place/" + Range("F5").Value + " " + Range("F6").Value + " " + Range("F7").Value
ActiveWorkbook.FollowHyperlink GoogleMapsCheckLink
GoogleMapsCheckYN.Show
End If


If Not Application.Intersect(Target, Range("B52, B61, D52, D61")) Is Nothing Then
    cancel = True
    macro


End If

End Sub

但每当我选择其中一个细胞时,例如B52,B61,D52或D61我收到编译错误消息:

  

编译错误:

     

参数数量错误或属性分配无效

单词Range会突出显示。

我的问题当然是我现在做错了什么?

修改

将范围更改为

Range("B52, B61, D52, D61")

我收到另一个错误:

  

运行时错误' 1004':

     

方法'范围'对象' _Worksheet'失败

顺便说一下,我还通过双击某个单元格值来激活其他宏,这些宏可以正常工作。只有当我将多个单元格作为范围时才会出现错误...

2 个答案:

答案 0 :(得分:0)

更改您的范围:

Range("B52, B61, D52, D61")

这是Excel中的有效范围参考。 Range方法接受两个引用,然后引用其间的所有单元格,或接受有效的范围名称。

答案 1 :(得分:0)

使用Office 2010为我工作。

如果目标位于Sheet1中,请确保脚本位于Sheet1模块

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Not Application.Intersect(Target, Range("B52, B61, D52, D61")) Is Nothing Then

        Cancel = True

        Worked = "Yes"

        'Calling Macro would go here
        Call SomeModule.SomeMarco

    Else

        Worked = "No"

    End If


    MsgBox Worked

End Sub