Выберите Case не работает, когда ячейка управляется формулой - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь написать код, который показывает другое окно сообщения, когда значение ячейки A3 отличается. Я считаю, что этот код работает, когда ячейка A3 содержит только текст, но когда я пытаюсь сделать ячейку A3 ячейкой, управляемой формулой, приведенный ниже код не работает. Может кто-нибудь помочь, пожалуйста ???

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A3"), Range(Target.Address)) Is Nothing Then
    Select Case Target.Value
        Case Is = "FALSE": MsgBox "This is False!"
        Case Is = "TRUE": MsgBox "This is True!"
    End Select
End If
End Sub

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

код, который наконец работает, как показано ниже:

Private Sub Worksheet_Calculate()
 Application.EnableEvents = False
   MsgBox "False" = Range("A1") = "False"
   MsgBox "True" = Range("A1") = "True"
 Application.EnableEvents = True
End Sub

Я обнаружил, что должен обновить его, чтобы обновить лист, в противном случае Excel не распознает изменение логического значения. Также я обнаружил, что мне нужно добавить код «Application.EnableEvents», в противном случае VBA запустится в бесконечный цикл, который выполняет свою работу, но останавливается только в случае принудительного прерывания и прекращения выполнения кода.

Спасибо Тиму и Ниростару за отличную обратную связь и вдохновение, чтобы все заработало!

0 голосов
/ 29 июня 2019

Полагаю, вы не хотите проверять строки True и False, но булевы значения, в противном случае все должно работать именно так. Можете ли вы дать нам формулу, которую вы использовали в клетке?

Если у вас действительно есть логические значения в ячейках, вы можете использовать:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("A3"), Range(Target.Address)) Is Nothing Then
        If Target.Value Then
            MsgBox "This is True!"
        Else
            MsgBox "This is False!"
        End If
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...