Здравствуйте! Ребята как создать условие в событие листа где ячейка активируется правым кликом в столбце (Столбец13) умной таблице (Таблица1). [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Если правый клик (или ячейка активна) в Столбце13 Таблицы1 Then 'Выполнить код End If End Sub
[/vba]
Здравствуйте! Ребята как создать условие в событие листа где ячейка активируется правым кликом в столбце (Столбец13) умной таблице (Таблица1). [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Если правый клик (или ячейка активна) в Столбце13 Таблицы1 Then 'Выполнить код End If End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True If Target.Column = 13 Then 'Выполнить код ' Cells(1, 13).Select ENDIF End Sub
[/vba] ?
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True If Target.Column = 13 Then 'Выполнить код ' Cells(1, 13).Select ENDIF End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "qq" End If End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "qq" End If End Sub
Здравствуйте! RAN, Спасибо! Входе тестирования возник вопрос. Возможно ли в событии правого клика несколько независимых условий для выполнения разных действий, как показано в примере ниже.
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "Столбец13" End If
If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then Cancel = True MsgBox "Столбец14" End If
End Sub
[/vba] У меня в рабочем коде бывает работает, а бывает выдает ошибку *1004 на второе условие, после ранее выполненного первого условия.
Ошибка *1004 - Метод пересечения глобального объекта не удался На строку - If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then
Здравствуйте! RAN, Спасибо! Входе тестирования возник вопрос. Возможно ли в событии правого клика несколько независимых условий для выполнения разных действий, как показано в примере ниже.
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "Столбец13" End If
If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then Cancel = True MsgBox "Столбец14" End If
End Sub
[/vba] У меня в рабочем коде бывает работает, а бывает выдает ошибку *1004 на второе условие, после ранее выполненного первого условия.
Ошибка *1004 - Метод пересечения глобального объекта не удался На строку - If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing ThenСергей13
Сообщение отредактировал Сергей13 - Суббота, 19.06.2021, 20:07
Рабочий код не всегда может справиться с тем, что пользователь заносит на лист. Проверьте написание столбцов в таблице и в коде (и имя таблицы), либо приложите файл с описанной проблемой.
Рабочий код не всегда может справиться с тем, что пользователь заносит на лист. Проверьте написание столбцов в таблице и в коде (и имя таблицы), либо приложите файл с описанной проблемой._Igor_61
Здравствуйте! _Igor_61, как таковых ошибок не обнаружил, возможно упущены некие правила VBA, но применив Exit Sub после выполнение процедуры стало срабатывать корректно. [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "Столбец13" Exit Sub End If If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then Cancel = True MsgBox "Столбец14" Exit Sub End If End Sub
[/vba] Спасибо всем!
Здравствуйте! _Igor_61, как таковых ошибок не обнаружил, возможно упущены некие правила VBA, но применив Exit Sub после выполнение процедуры стало срабатывать корректно. [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "Столбец13" Exit Sub End If If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then Cancel = True MsgBox "Столбец14" Exit Sub End If End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "Столбец13" ElseIf Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then Cancel = True MsgBox "Столбец14" End If End Sub
[/vba]
Можно так попробовать [vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец13").Range) Is Nothing Then Cancel = True MsgBox "Столбец13" ElseIf Not Intersect(Target, Me.ListObjects(1).ListColumns("Столбец14").Range) Is Nothing Then Cancel = True MsgBox "Столбец14" End If End Sub