我的Excel文档中的工作表会在编辑时偶尔崩溃Excel,并且会显示无用的错误消息。崩溃是罕见的,但确实发生了。我想知道工作表事件代码的以下部分是否导致崩溃。具体而言," BeforeDoubleClick"调用" SelectionChange",但双击一个单元格也是一个选择更改,所以SelectionChange从两个不同的地方调用,导致一些时间问题,有时崩溃?我是初学者,不知道我是否使用了正确的术语。
我有一个单元格(例如,在第1列中)我希望在用户点击它时按颜色切换。如果我没有使用beforedoubleclick事件,如果用户切换颜色,为了再次切换它们,他们必须先离开单元格然后返回。我想避免这种情况,并让用户能够留在那个单元格上,切换颜色。第7栏的类似评论。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Or Target.Column = 7 Then
Cancel = True
Else
Cancel = False
End If
Worksheet_SelectionChange Target
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Row >= 13 And Cells(Target.Row, 2) <> "" Then
Select Case Target.Interior.ColorIndex
Case xlNone
Target.Interior.ColorIndex = 4
Case 4
Target.Interior.ColorIndex = 3
UserForm2.ListBox1.ListIndex = -1
Case 3
Target.Interior.ColorIndex = 4
UserForm2.ListBox1.ListIndex = -1
End Select
End If
If Target.Column = 7 And Target.Row >= 13 And Cells(Target.Row, 2) <> "" Then
Set TagCell = Target
UserForm3.Show
End If
End Sub
答案 0 :(得分:1)
您是否需要在双击事件中调用Worksheet_SelectionChange
?尝试删除它。
否则,您可以创建一个单独的Sub,其中包含来自SelectionChange的代码,并调用该Sub代替。 (也可以在SelectionChange事件中调用它,将其从此事件中删除。)
这样,您运行所需的代码,而不会触发两次更改事件。