首页 > 解决方案 > 仅通过双击特定范围更改单元格的颜色-VBA

问题描述

我目前正在处理一张表格,我希望能够通过双击感兴趣的单元格来更改特定范围的单元格的颜色。我只希望将其应用于整个工作表的 3 个单元格,其余单元格没有此功能。我在网上找到了以下代码,但是,它不是特定范围的,适用于整个工作表。我有办法做到这一点吗?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Select Case Target.Interior.ColorIndex
    Case xlNone, 4: Target.Interior.ColorIndex = 3
    Case 3: Target.Interior.ColorIndex = 45
    Case 45: Target.Interior.ColorIndex = 4
    Case Else: Target.Interior.ColorIndex = xlNone
End Select
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.Interior.ColorIndex = xlNone
End Sub

标签: vbaexcel

解决方案


用于Intersect检查是否TargetC46:C48.

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Not Intersect(Target, Me.Range("C46:C48")) Is Nothing Then
        Select Case Target.Interior.ColorIndex
            Case xlNone, 4: Target.Interior.ColorIndex = 3
            Case 3: Target.Interior.ColorIndex = 45
            Case 45: Target.Interior.ColorIndex = 4
            Case Else: Target.Interior.ColorIndex = xlNone
        End Select
    End If
End Sub

推荐阅读