Сравните значение клеток - PullRequest
       1

Сравните значение клеток

0 голосов
/ 11 февраля 2019

У меня очень простая проблема (почему я не могу поверить, что я не вижу ошибки).Я хочу сравнить серию клеток друг с другом.Если одно из них содержит какое-либо значение, а другое - нет, оператор if должен быть истинным (поэтому BolPIDEqual = false).Достаточно просто, но когда я проверяю его, Statemnt if никогда не становится истинным (BolPIDEqual = false), даже если данные теста не совпадают для обеих ячеек / диапазонов.Например, A1 = "1" и A2 = "" приводят к тому, что не запускается if, но второй if должен срабатывать и устанавливать BolPIDEqual в false ...

Пожалуйста, помогите мне, я действительно не вижу, чтоЯ делаю неправильно ...

For r = 1 To 5
                 If Worksheets("X").Cells(1, r).Value = "" And Worksheets("X").Cells(2, r).Value = "*?*" Then
                    BolPIDEqual = False
                ElseIf Worksheets("X").Cells(1, r).Value = "*?*" And Worksheets("X").Cells(2, r).Value = "" Then
                    BolPIDEqual = False
                End If
            Next r

1 Ответ

0 голосов
/ 11 февраля 2019

Могу ли я предложить это изменение.Если я правильно понимаю ваше затруднительное положение.Я изменяю имя листа на Sheet1, чтобы можно было проводить локальное тестирование.

Sub testCells()

  For r = 1 To 5

                 If IsEmpty(Worksheets("Sheet1").Cells(1, r).Value) And Not IsEmpty(Worksheets("Sheet1").Cells(2, r).Value) Then
                    BolPIDEqual = False
                ElseIf Not IsEmpty(Worksheets("Sheet1").Cells(1, r).Value) And IsEmpty(Worksheets("Sheet1").Cells(2, r).Value) Then
                    BolPIDEqual = False
                End If
            Next r
   End Sub

Стоит отметить, что вам все равно нужно установить для BolPIDEqual значение true, когда условия действительно выполняются.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...