Excel 我正在工作表中运行一个专用子系统。我可以点击一些东西来启用/禁用它吗?i、 我可以为按钮编程吗?
这是我的密码。这是一个函数,当我单击单个未锁定的单元格时,它会将值增加1。我有一个问题,让它总是运行。有时它会运行,有时我必须打开代码并在最后一个端点子节点后按enter键。我需要的是一个刷新此代码的按钮,以便VBA工作Excel 我正在工作表中运行一个专用子系统。我可以点击一些东西来启用/禁用它吗?i、 我可以为按钮编程吗?,excel,vba,Excel,Vba,这是我的密码。这是一个函数,当我单击单个未锁定的单元格时,它会将值增加1。我有一个问题,让它总是运行。有时它会运行,有时我必须打开代码并在最后一个端点子节点后按enter键。我需要的是一个刷新此代码的按钮,以便VBA工作 Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Private Const MOUSEEVENTF_LEFTDOWN = &H2 Private
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Key As Integer
If Target.Count > 1 Then Exit Sub
Key = GetKeyState(MOUSEEVENTF_LEFTDOWN)
If Key And 1 Then
If IsNumeric(Target.Value) Then
Target.Value = Target.Value + 1
Application.EnableEvents = False
Target.Resize(1, 2).Select
Application.EnableEvents = True
End If
Cancel = True
End If
End Sub
你觉得这个对我有用的简化代码怎么样
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If IsNumeric(Target.Value) Then
Application.EnableEvents = False
Target.Value = Target.Value + 1
Target.Resize(1, 2).Select
Application.EnableEvents = True
End If
End Sub
为什么要使用鼠标事件?这是为了确保它不是从移动到那里的箭头键?它确保我有较少的可能性失败,但我改为下面的脚本,这似乎是更好的工作。谢谢你的智慧,安德兰。我把我的文件改成了这个,看起来效果不错。非常感谢。现在我遇到了另一个问题,我的一些形式,和不是自动求和(这很奇怪)。