Активировать макрос при нажатии на ячейку - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь закончить это, чтобы я мог щелкнуть по ячейкам ws2 (D11) и ws3 (C12) и показать окно, содержащее ClientNumber. Я просто не могу понять, как это работает, поскольку я пытался адаптировать некоторые решения к своему коду, но безуспешно и не знаю, почему.

Public ClientNumber As String


Sub Booker()

Dim ws As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet

Set ws = Sheets("ClientEnd")
Set ws2 = Sheets("Booking End")
Set ws3 = Sheets("Training End")

Dim ClientName As String


ClientName = InputBox("Please enter your name")

ClientNumber = InputBox("Please enter a contact number")

ws2.Range("D11") = ClientName

ws3.Range("C12") = ClientName

ws2.Range("O11:R11").Style = "Good"

ws3.Range("H12:K12").Style = "Good"

ws3.Range("I12").Style = "Normal"

Call NumberBox

End Sub


Sub NumberBox()

Dim ws As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet

Set ws = Sheets("ClientEnd")
Set ws2 = Sheets("Booking End")
Set ws3 = Sheets("Training End")

If Target.Address = ws2.Range("$D$11") Then MsgBox ClientNumber
If Target.Address = ws3.Range("$C$12") Then MsgBox ClientNumber

End Sub

Я надеялся, что ClientNumber появится в сообщении, когда я нажму на указанные ячейки на каждом листе, которые успешно обновляются до ClientName, но ничего не происходит. Без ошибок, ничего.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Вы можете использовать событие Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean).

В WS3 положить

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Not Intersect(Target, Range("C12")) Is Nothing Then 'range than u want to capture       
        Call NumberBox 'your code
    End If
End Sub

Сделайте то же самое для ws2

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Not Intersect(Target, Range("D11")) Is Nothing Then 'range than u want to capture       
        Call NumberBox 'your code
    End If
End Sub

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

0 голосов
/ 12 апреля 2019

Вы можете попробовать добавить событие SelectionChange к рабочим листам. На листе 2 и 3 добавьте код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "&D&11" Then 'Change the "&D&11" to "&C&12" for worksheet 3
        Call NumberBox ' You could also add Target as a paramater
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...