2010-03-20 6 views
0

셀 안에 클릭 된 횟수를 계산하는 무료 프로그램을 추천 할 수 있습니까?카운트 클릭 엑셀

하는 예는 값이 1 가 그럼 난 값이 표시 등 에 내가 셀 A3 쇼에 클릭 수 사이의 어딘가에 A3 셀을 클릭하면 다시 A1 셀을 클릭 보여줍니다 내가 A1 셀을 클릭하여 스프레드 시트 같은 것을 상상해 들어 1 등등

excel (2003 년)에서 매크로로 달성 할 수있는 사항이 있으면 알려 주시기 바랍니다. 다른 무료 프로그램이나 제안 사항을 알려주십시오. 알려 주시기 바랍니다. 모든 도움에 감사 드리며 미리 감사드립니다.

+0

특정 영역 A1 : L29에 대상을 정의 할 수 있습니까? 이 코드는 전체 시트를 선택합니다 –

답변

2

엑셀 마우스 왼쪽 클릭에 대한 워크 시트 이벤트가 없습니다.

'SelectionChange'에 대한 이벤트가 있으며 API 호출과 결합하여 마우스 왼쪽 버튼이 클릭되었는지 확인할 수 있습니다.

이 코드는 대상 워크 시트의 프로젝트 탐색기 영역에서 시트 개체로 이동해야합니다.

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에 내장되어 있으며 위의 코드보다 더 안정적입니다.

는 셀 값을 증가하기 위해, 사용자는 셀을 두 번 클릭해야합니다.

이 코드는 대상 워크 시트의 프로젝트 탐색기 영역에서 시트 개체로 이동해야합니다.

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 
+0

와우, 내 도움이됩니다. 고마워. – rockbala

0

예, 가능합니다. this link에서 제공되는 VBA 스크립트의 변형을 사용할 수 있습니다. 희망이 도움이됩니다.