Код 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 ответ
Вместо использования кнопки вы можете использовать коды событий, чтобы получить желаемый результат.
Двумя такими событиями будут событие двойного щелчка и событие правого щелчка.
например
- если вы дважды щелкните по любой ячейке в столбце BR, начиная с Row2, она увеличит эту ячейку на 1.
- если вы щелкнете правой кнопкой мыши в любой ячейке в столбце 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