2017-09-23 149 views
1

我是Excel新手,我有一個包含多個命令按鈕的工作表。我想知道是否可以通過左擊(正常情況下)和右擊來爲多個單元格添加值。例如,如果我離開單擊命令按鈕,它會向單元格A1添加(+1),但是如果我右鍵單擊相同的命令按鈕,則會向單元格B1添加(+1)。使用右鍵單擊/左鍵單擊功能更改多個單元格中的添加值的VBA代碼

這裏是我必須添加代碼(+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)到cell BQ

+0

您應該使用'SpinButton'代替。或者,您可以使用WinApi調用掛鉤鼠標按鈕。我對這個網站下載有問題[VB中的Win32鉤子--vbAccelerator鉤子庫](http://www.vbaccelerator.com/codelib/hook/vbalhook.htm),但它似乎是一個很好的參考。您可以在幾分鐘內啓動並運行'SpinButton'。另一方面,掛鉤和解開鼠標按鈕將提供幾小時或幾天的樂趣(和大量的經驗點)。 – 2017-09-23 02:32:58

回答

0

您可以使用事件代碼來獲得所需的輸出,而不是使用按鈕。

這兩個這樣的事件將是雙擊事件和右擊事件。

例如

  1. 如果你雙在列BR從行2開始的任意單元格點擊,它會增加1。
  2. 該單元格,如果你權的任意單元格列BR點擊從行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