求助,Excel2003代码问题,拜托各位大师了!

2025-03-21 19:33:58
推荐回答(2个)
回答1:

你这个问题说起来好像很杂的样子,实际上很简单。

一般我不用点击,因为sheet只有selectchange\beforerightclick\beforedoubleclick等事件,如果用selectchange事件,即使用键盘改变选定单元格,也会触发事件。建议用双击事件,代码如下

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Application.Intersect(Target, Range("EV9:EV19")) Is Nothing And Target.Count = 1 Then
    Sheet1.Range("k13:K23").ClearContents
    Sheet1.Range("k13:K" & 12 + Target) = 0
    If [es7] = "壹" Then Sheet1.Range("k" & 12 + Target) = 1
    Cancel = True
  End If
End Sub

当然了,换成Private Sub Worksheet_SelectionChange(ByVal Target As Range)用选择(单击)事件也是一样可以的

回答2:

Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row > 8 And Target.Row < 20 And Target.Column = 152 Then
    Range("k13:k23") = ""
    If [es7] = "零" Then
        [k13].Resize(Target, 1) = 0
    Else
        [k13].Resize(Target, 1) = 1
        If Target > 1 Then
            [k13].Resize(Target - 1, 1) = 0
        End If
    End If
End If
If Target.Row = 6 And Target.Column = 152 And Target = "清除" Then Range("k13:k23") = ""
End Sub