Если выражение True игнорируется и всегда выполняется иначе - PullRequest
0 голосов
/ 14 февраля 2020

Я хочу проверить столбец 1 на наличие совпадений с TextBox.

Если есть совпадение, обновите несколько текстовых полей данными рабочего листа. Если совпадений нет, отобразите MsgBox. Вот фрагмент моего кода:

Private Sub CheckPCButton_Click()                                                                      
    Dim totRows As Long, i As Long
    totRows = Worksheets("Sheet4").Range("A1").CurrentRegion.Rows.Count

    For i = 2 To totRows
        If Trim(UCase(Sheet4.Cells(i, 1))) = Trim(UCase(TextBox22.Text)) Then           
            TextBox22.Text = Sheet4.Cells(i, 1)
            TextBox25.Text = Sheet4.Cells(i, 2)
            TextBox24.Text = Sheet4.Cells(i, 3)
            TextBox23.Text = "Approved"
        Else
            MsgBox "Not approved"                                                                                                                                                    
            Exit For
        End If 
    Next i

End Sub

1 Ответ

1 голос
/ 14 февраля 2020

Логики вашего кода c верны? Мое понимание вашего кода:

  1. Начните с ROW = 2
  2. Проверьте, совпадают ли Cells(ROW,1) и TextBox22.
  3. Если они совпадают, обновите пользовательская форма включая обновление TextBox22
  4. Теперь перейдите к следующему ROW и повторите, начиная с шага 2
  5. Шаги 2, 3, 4 будут повторяться до несоответствия
  6. Если совпадений нет, покажите MsgBox

Так что, если все значения в Column 1 не совпадают с теми, которые изначально были в TextBox22, вы в конечном итоге вы получите MsgBox.

Добавлено на основе комментария от оригинального плаката

Я думаю, этот код делает то, что вы после

Private Sub CheckPCButton_Click()
    Dim MatchFound as boolean
    Dim totRows As Long, i As Long
    totRows = Worksheets("Sheet4").Range("A1").CurrentRegion.Rows.Count
    MatchFound = False
    For i = 2 To totRows
        If Trim(UCase(Sheet4.Cells(i, 1))) = Trim(UCase(TextBox22.Text)) Then           
            TextBox22.Text = Sheet4.Cells(i, 1)
            TextBox25.Text = Sheet4.Cells(i, 2)
            TextBox24.Text = Sheet4.Cells(i, 3)
            TextBox23.Text = "Approved"
            MatchFound = True
            Exit For
        End If 
    Next i
    If Not MatchFound Then MsgBox "Not approved"

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