2017-09-23 12 views
1

Excel에 익숙하지 않고 여러 명령 단추가있는 워크 시트가 있습니다. 왼쪽 클릭 (정상적으로) 및 오른쪽 클릭으로 여러 셀에 값을 추가 할 수 있는지 알고 싶습니다.오른쪽 클릭/왼쪽 클릭 기능으로 여러 셀의 값을 추가하는 VBA 코드

예를 들어 명령 단추를 클릭하면 +1 (0)이 셀 A1에 추가되지만 동일한 명령 단추를 마우스 오른쪽 단추로 누르면 셀에 B1 (+1)이 추가됩니다.

Sub Action68_Click() 
    'update column BR by adding 1 to the cell value' 
    Worksheets("Stats").Cells(CurrentPlayerRow, "BR").Value = Worksheets("Stats").Cells(CurrentPlayerRow, "BR").Value + 1 
End Sub` 

이 (+1)에 추가 오른쪽 클릭 버튼을 사용하여 거기다 : 여기

내가 추가해야 코드 (+1) 내가 정상 마우스 왼쪽 버튼을 클릭 할 때입니다 셀 BQ?

+0

대신 'SpinButton'을 사용해야합니다. 또는 WinApi 호출을 사용하여 마우스 단추를 연결할 수도 있습니다. 나는이 사이트 다운로드 [VB에서 Win32 후크 - vbAccelerator 후크 라이브러리] (http://www.vbaccelerator.com/codelib/hook/vbalhook.htm)에서 문제가 있었지만 좋은 참고 자료로 보인다. SpinButton을 몇 분 내에 작동시킬 수 있습니다. 다른 한편으로, 마우스 버튼을 걸거나 푸는 것은 몇 시간 또는 아마도 재미있는 일 (그리고 많은 경험치)을 제공합니다. –

답변

0

단추를 사용하는 대신 이벤트 코드를 사용하여 원하는 출력을 얻을 수 있습니다.

그런 두 이벤트는 이됩니다. 이벤트와 두 번 클릭 이벤트를 오른쪽 클릭하십시오.

당신이 더블 행 2부터 열 BR의 모든 셀에을 클릭하면 당신이 오른쪽 행 2부터 열 BR의 모든 셀에을 클릭하면

  1. , 그것은 그것을 1.
  2. 하여 해당 셀을 증가합니다 BS 열의 해당 셀을 1 씩 증가시킵니다.

이 방법을 사용하여 시트 모듈에 다음 코드를 배치하고 시트 탭 ->보기를 마우스 오른쪽 버튼으로 클릭하면됩니다. 아래의 코드를 코드화하고 열린 코드 창에 붙여 넣으십시오.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
Dim oval 
If Target.Column = Range("BR1").Column And Target.Row > 1 Then 
    Cancel = True 
    oval = Target.Value 
    If IsNumeric(oval) Then 
     Target.Value = oval + 1 
    End If 
End If 
End Sub 

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
Dim oval 
If Target.Column = Range("BR1").Column And Target.Row > 1 Then 
    Cancel = True 
    oval = Target.Offset(0, 1).Value 
    If IsNumeric(oval) Then 
     Target.Offset(0, 1).Value = oval + 1 
    End If 
End If 
End Sub 
+0

고맙습니다. 이것은 확실히 더 좋은 방법입니다. 감사합니다. –

+0

@ S.Clancy 환영합니다! 당신이 그 아이디어를 좋아했기 때문에 다행입니다. 문제가 해결되면 잠시 시간을내어 답을 수락하여 질문을 해결 됨으로 표시하십시오. :) – sktneer