我试图在有人双击特定范围的单元格时启动宏。我现在得到的完整分包是:
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'失败
顺便说一下,我还通过双击某个单元格值来激活其他宏,这些宏可以正常工作。只有当我将多个单元格作为范围时才会出现错误...
答案 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