在Excel中计算点击次数

时间:2010-03-20 12:26:55

标签: excel count

有人可以推荐任何可以计算单元格内点击次数的免费程序。

例如想象一下像电子表格这样的东西 我点击A1单元格,数值显示1 然后我再次单击A1单元格,值显示2,依此类推 如果我在单元格中单击A3单元格,则单元格A3上的单击计数显示为1,依此类推

如果这样的事情可以作为宏在excel(2003年请),请建议或您可能知道的任何其他免费程序,请告诉我。我感谢您的帮助,并提前感谢您。

2 个答案:

答案 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脚本的某些变体。希望这会有所帮助。