Код VBA для изменения добавленной стоимости в нескольких ячейках с помощью функции щелчка правой или левой кнопкой мыши

Я новичок в Excel, и у меня есть лист с несколькими командными кнопками. Я хочу знать, могу ли я добавить значение к нескольким ячейкам, щелкнув левой кнопкой мыши (как обычно) и щелкнув правой кнопкой мыши.

Например, если я щелкну левой кнопкой мыши по командной кнопке, в ячейку добавится (+1) A1, но если я щелкну правой кнопкой мыши по той же командной кнопке, он добавляет (+1) в ячейку 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) в ячейку BQ?

1 ответ

Решение

Вместо использования кнопки вы можете использовать коды событий, чтобы получить желаемый результат.

Двумя такими событиями будут событие двойного щелчка и событие правого щелчка.

например

  1. если вы дважды щелкните по любой ячейке в столбце BR, начиная с Row2, она увеличит эту ячейку на 1.
  2. если вы щелкнете правой кнопкой мыши в любой ячейке в столбце BR, начиная с Row2, она увеличит соответствующую ячейку в столбце BS на 1.

Если вы думаете, что вы можете работать с этим подходом, поместите следующие коды в Sheet Module и для этого щелкните правой кнопкой мыши вкладку Sheet -> View Code и вставьте приведенный ниже код в открытое окно кода.

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
Другие вопросы по тегам