【问题标题】:Restricting VBA code to certain range of cells within worksheet将 VBA 代码限制为工作表中特定范围的单元格
【发布时间】:2019-12-19 14:20:49
【问题描述】:

我目前正在运行的代码会在单击时更改单元格颜色和值,即单击更改单元格颜色并将值设置为 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】:

    解决了。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      相关资源
      最近更新 更多