Найдено идентификатор в текстовом поле 1, чтобы найти строку, не применяя выбор флажка для этой строки - PullRequest
0 голосов
/ 25 ноября 2018

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

Код


Private Sub CommandButton1_Click()
    Dim lrEM As Long
    Dim FoundID As Range
    Set FoundID = Sheets("Employee-Software").Range("A:A").Find(What:=TextBox1.Text, Lookat:=xlWhole)
    If Not FoundID Is Nothing Then
        Sheets("Employee-Software").Cells(FoundID.Row, "A").Value = TextBox1.Text
    Else
        lrEM = Sheets("Employee-Software").Range("A" & Rows.Count).End(xlUp).Row + 1
        Sheets("Employee-Software").Cells(lrEM, "A").Value = TextBox1.Text
    End If
    If CheckBox1.Value = True Then
        Sheets("Employee-Software").Cells(FoundID.Row, "B").Value = "Yes"
        If CheckBox2.Value = True Then
            Sheets("Employee-Software").Cells(FoundID.Row, "B").Value = "No"
        End If
    End Sub

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Вы не сможете запустить код как есть, потому что вам не хватает end if

Если вы ищете значение текстового поля в столбце А, почему вы должны сделать его значением текстового поля?если найдено?

Нельзя использовать FoundID.Row, если значение текстового поля не найдено.

Вы хотите использовать значение Да / Нет, только если значение найдено?

Вам не нужны два флажка, если checkbox1 = true, тогда «да», иначе «нет»

Private Sub CommandButton1_Click()
    Dim lrEM As Long, x
    Dim FoundID As Range, sh As Worksheet

    Set sh = Sheets("Employee-Software")

    With sh
        x = IIf(CheckBox1 = True, "Yes", "No")
        Set FoundID = .Range("A:A").Find(What:=TextBox1.Text, Lookat:=xlWhole)

        If Not FoundID Is Nothing Then
            'Sheets("Employee-Software").Cells(FoundID.Row, "A").Value = TextBox1.Text

            FoundID.Offset(, 1) = x
        Else

            lrEM = .Range("A" & .Rows.Count).End(xlUp).Row + 1
            .Cells(lrEM, "A").Value = TextBox1.Text
            .Cells(lrEM, "B").Value = x
        End If

    End With
End Sub
0 голосов
/ 25 ноября 2018

Единственная проблема, которую я мог найти, была в ваших последних строках, если

If CheckBox1.Value = True Then
    Sheets("Employee-Software").Cells(FoundID.Row, "B").Value = "Yes"
If CheckBox2.Value = True Then
    Sheets("Employee-Software").Cells(FoundID.Row, "B").Value = "No"
End If

Это должно быть

If CheckBox1.Value = True Then
    Sheets("Employee-Software").Cells(FoundID.Row, "B").Value = "Yes"
else CheckBox2.Value = True Then
    Sheets("Employee-Software").Cells(FoundID.Row, "B").Value = "No"
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...