我的当前代码只需单击一下即可将单元格颜色更改为黄色,然后再次单击时将其更改为空。我想知道我是否可以这样做,这次双击时将其更改为绿色(颜色指数= 10),然后再次双击时再回到空白。这是我目前的代码:
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
Cancel = True
Worksheet_SelectionChange target
End Sub
Private Sub Worksheet_SelectionChange(ByVal target As Range)If
Intersect(target, Range("B9:AF129")) Is Nothing Then Exit Sub
If target.Interior.ColorIndex = xlNone Then
target.Interior.ColorIndex = 6
ElseIf target.Interior.ColorIndex = 6 Then
target.Interior.ColorIndex = xlNone
End If
End Sub
答案 0 :(得分:0)
分类工作......
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
Cancel = ToggleColor(target, vbGreen)
Debug.Print "double"
End Sub
Private Sub Worksheet_SelectionChange(ByVal target As Range)
ToggleColor target, vbYellow
Debug.Print "single"
End Sub
Private Function ToggleColor(rng As Range, clr As Long) As Boolean
If Intersect(rng, Me.Range("B9:AF129")) Is Nothing Then Exit Function
If rng.Cells.CountLarge > 1 Then Exit Function
With rng.Interior
If .ColorIndex = xlNone Or .Color <> clr Then
.Color = clr
Else
.ColorIndex = xlNone
End If
End With
ToggleColor = True 'to cancel the double-click
End Function