有人可以推荐任何可以计算单元格内点击次数的免费程序。
例如想象一下像电子表格这样的东西 我点击A1单元格,数值显示1 然后我再次单击A1单元格,值显示2,依此类推 如果我在单元格中单击A3单元格,则单元格A3上的单击计数显示为1,依此类推
如果这样的事情可以作为宏在excel(2003年请),请建议或您可能知道的任何其他免费程序,请告诉我。我感谢您的帮助,并提前感谢您。
答案 0 :(得分:2)
Excel没有鼠标左键单击的工作表事件。
它有'SelectionChange'事件,可以与API调用结合使用,检查鼠标左键是否被点击。
此代码需要进入您要定位的工作表的Project Explorer区域中的Sheet对象。
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
''//If multiple cells selected with left click and drag
''// then take no action
Key = GetKeyState(MOUSEEVENTF_LEFTDOWN)
If Key And 1 Then
If IsNumeric(Target.Value) Then
Target.Value = Target.Value + 1
''//Check to see if cell contains a number, before
''// trying to increment it
Application.EnableEvents = False
Target.Resize(1, 2).Select
Application.EnableEvents = True
''//Resize the selection, so that if the cell is clicked
''// for a second time, the selection change event is fired again
End If
End If
End Sub
尽管此代码有效,但即使用户没有单击鼠标,它也可以递增单元格值。
如果可能的话,我建议使用'BeforeDoubleClick'事件。它内置于Excel中,比上面的代码更可靠。
为了增加单元格值,用户需要双击单元格。
此代码需要进入您要定位的工作表的Project Explorer区域中的Sheet对象。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If IsNumeric(Target.Value) Then
Target.Value = Target.Value + 1
''//Check to see if cell contains a number, before
''// trying to increment it
Application.EnableEvents = False
Target.Resize(1, 2).Select
Application.EnableEvents = True
''//Resize the selection, so that if the cell is clicked
''// for a second time, the selection change event is fired again
Cancel = True
''//Stop the cell going into edit mode
End If
End Sub
答案 1 :(得分:0)
是的,这是可能的。您可以使用this link中提供的VBA脚本的某些变体。希望这会有所帮助。