Использование текстовых значений в Combobox - PullRequest
0 голосов
/ 23 марта 2020

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

Private Sub ComboBox1_Change()
Dim i As Long, LastRow As Long, ws As Worksheet
Set ws = Sheets("Sheet1")
LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To LastRow
    If Val(Me.ComboBox1.Value) = ws.Cells(i, "A") Then
        MsgBox Me.ComboBox1.Value
        Me.TextBox1 = ws.Cells(i, "B").Value
        Me.TextBox2 = ws.Cells(i, "C").Value
        Me.TextBox3 = ws.Cells(i, "D").Value
        Me.TextBox4 = ws.Cells(i, "E").Value
    End If

Next i

End Sub

1 Ответ

0 голосов
/ 24 марта 2020

Я исправил это сам с возможностью полностью изменить. К вашему сведению: лист переименован в «Контроль»

Private Sub UserForm_Initialize()
    With Sheets("Control")
        Me.ComboBox1.List = .Range("a2", .Range("a" & Rows.Count).End(xlUp)).Value
    End With
End Sub

Private Sub ComboBox1_Change()
    Dim i As Long
    For i = 1 To 4
        Me("textbox" & i).Value = ""
    Next
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    With Sheets("control")
        For i = 1 To 4
            Me("textbox" & i).Value = .Cells(Me.ComboBox1.ListIndex + 2, i + 1).Value
        Next
    End With
End Sub

Private Sub CommandButton2_Click()
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Sheets("control").Cells(Me.ComboBox1.ListIndex + 2, "b").Resize(, 4).Value = _
    Array(Me.TextBox1.Value, Me.TextBox2.Value, Me.TextBox3.Value, Me.TextBox4.Value)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...