У меня есть книга, над которой я работаю, где на одной странице нужно несколько кнопок. Тем не менее, я решил использовать beforerightclick
в наборах ячеек вместо этого, так как это лучше подходит для листа и пользователей.
У меня есть несколько beforerightclick
правил, которые отлично работают. Моя проблема в том, что пользователь больше не может щелкнуть правой кнопкой мыши в другом месте на этом листе.
Я нашел пример на другом веб-сайте, который позволяет работать правой кнопкой мыши, однако он не позволяет использовать несколько целей с собственными правилами. Если я не пропустил что-то, что может иметь место, подумайте, что на VBA это неделя 3.
Вот мой код: -
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$13" Then
If Range("B12") = "Yes" Then
Call Item_1_Get_Data
End If
If Range("C12") = "Yes" Then
Call Item_2_Get_Data
End If
If Range("D12") = "Yes" Then
Call Item_3_Get_Data
End If
If Range("E12") = "Yes" Then
Call Item_4_Get_Data
End If
If Range("F12") = "Yes" Then
Call Item_5_Get_Data
End If
End If
If Target.Address = "$B$13" Then
Call Item_1_Get_Data
End If
If Target.Address = "$C$13" Then
Call Item_2_Get_Data
End If
If Target.Address = "$D$13" Then
Call Item_3_Get_Data
End If
If Target.Address = "$E$13" Then
Call Item_4_Get_Data
End If
If Target.Address = "$F$13" Then
Call Item_5_Get_Data
End If
If Target.Address = "$B$10" Then
Call SimpleVersion
End If
If Target.Address = "$C$10" Then
Call DetailedVersion
End If
Cancel = True
End Sub
Это то, что я нашел, но я не могу заставить это работать со всеми различными критериями щелчка правой кнопкой мыши, которые я установил. Я явно что-то упускаю. Есть идеи?
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A1:B3")) Is Nothing Then Exit Sub
Cancel = True
'
'your code here
'
End Sub
Если бы я использовал intersect(target, Range(A13,B13,C13,D13,E13,F13,B10,C10))
, я думаю, что у меня может быть только одно правило на этот щелчок правой кнопкой мыши.
Если я делаю кратные intersect(target,Range(a13)
, тогда скажите intersect(target,Range(B13)
, это работает на первом, но не на втором или больше.
Спасибо,