将VBA代码限制为工作表中单元格的特定范围

问题描述 投票:0回答:1

我当前正在运行的代码会在单击时更改单元格的颜色和值,即单击一次会更改单元格的颜色并将值设置为1,双击同一单元格以删除颜色和数字。这是为了使人们能够以可视的方式填写表格,并使我能够计算“已检查”的单元格。我的问题是我需要将其限制在该工作表中的某个范围内,以使人们无法覆盖其他单元格。

我几乎没有编码经验,并且下面的代码是在线上找到的一堆东西的混合物。

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)
    With Target
        If .Range("E4:K79") Is Nothing Or .Count > 1 Then Exit Sub
        Select Case .Value
        Case ""
            .Interior.ColorIndex = 40
        Case 1
            .Interior.ColorIndex = xlNone
            .Value = vbNullString
            Exit Sub
        Case Else
            Exit Sub
        End Select
    .Value = .Value + 1
    End With
End Sub
excel vba range
1个回答
0
投票

已解决。

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)
    With Target
        If Intersect(.Cells, Range("E4:K120")) Is Nothing Or .Count > 1 Then Exit Sub
        Select Case .Value
        Case ""
            .Interior.ColorIndex = 3
        Case 1
            .Interior.ColorIndex = xlNone
            .Value = vbNullString
        Exit Sub
        Case Else
        Exit Sub
        End Select
            .Value = .Value + 1
    End With

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.