我在Excel 2013中遇到问题。昨天我通过右键单击工作表的选项卡(Alt-F11)将以下代码放入Excel中:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("D3:T42")) Is Nothing Then
Application.EnableEvents = False
If Target.Value = ChrW(&H2713) Then
Target.ClearContents
Cancel = True
Else
Target.Value = ChrW(&H2713)
Cancel = True
End If
End If
Application.EnableEvents = True
End Sub
这段代码应该在双击后在定义的单元格中添加一个复选标记。虽然这段代码昨天工作正常,但它现在不再起作用了。我已经尝试了一切,但只是不让它工作。有任何想法吗 ?
PS我想使用这样的代码,因为带有许多表单复选框的工作表会使它非常慢(至少在我的情况下)
问候,Arno
答案 0 :(得分:0)
一次测试中的某些错误可能会使EnableEvents
永远保持虚假。
使用Application.EnableEvents = true
运行单个子并再次测试。
如果错误,则不会抛出任何事件,没有点击,没有双击,没有任何效果。
我建议您添加On error goto
语句,以避免出现此类问题:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error goto 1
If Not Intersect(Target, Range("D3:T42")) Is Nothing Then
Application.EnableEvents = False
If Target.Value = ChrW(&H2713) Then
Target.ClearContents
Cancel = True
Else
Target.Value = ChrW(&H2713)
Cancel = True
End If
End If
on error goto 0
1 Application.EnableEvents = True
End Sub