командное окно для обновления данных в электронной таблице

#excel #vba

#excel #vba

Вопрос:

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

это то, что я пробовал

   Private Sub CommandButton6_Click()
    Dim lrCD As Long
    lrCD = Sheets("Sheet2").Range("A" amp; Rows.Count).End(xlUp).Row
    Sheets("Sheet2").Cells(lrCD   1, "A").Value = ComboBox1.Text
    Sheets("Sheet2").Cells(lrCD   1, "B").Value = TextBox5.Text
  

Комментарии:

1. Вы имеете в виду, что оно переходит к следующей строке? Ваше событие click находит последнюю строку в столбце A, а затем добавляет текст в следующую строку вниз. Измените Cells(lrCD 1, "A") на константу, если вы хотите обновлять одну и ту же ячейку каждый раз Cells(1, "A") .

2. я пытался это сделать, я даже пытался использовать ячейки (lrCD, «A»), проблема в том, что обновленные данные переходят на следующую строку вниз

3. Должен быть какой-то другой код, который все портит — я попробовал точный код, который вы опубликовали, удалил 1 , и он всегда обновлял одну и ту же строку на основе последней строки, найденной в столбце A.

4. я использую выбор строки для заполнения выпадающего списка, и эта строка является строкой A на листе 2, теперь необходимо обновить строку B, но вместо этого она не обновляет выбранный элемент

5. Кажется, я запутался в вашем английском …. поле со списком содержит значения в столбце A на листе 2. Когда вы выбираете одно из этих значений в поле со списком, оно найдет это значение в столбце A и обновит соседнее значение в столбце B любым текстом в текстовом поле. Я думаю, это то, о чем вы спрашиваете?

Ответ №1:

Создайте свою форму, как показано ниже:

введите описание изображения здесь

Столбец A в Sheet2 содержит уникальные значения, которые будут отображаться в вашем выпадающем списке.

Этот код находится внутри формы.
UserForm_Initialize() Событие срабатывает при открытии формы и заполняет поле со списком значениями.
CommandButton6_Click Событие выполняет поиск в столбце A и помещает текст в текстовое поле 5 рядом с выбранным значением.

 Private Sub UserForm_Initialize()
    Dim lrCD As Long
    'Populate ComboBox with values from column A on Sheet2.
    With ThisWorkbook.Worksheets("Sheet2")
        lrCD = .Range("A" amp; Rows.Count).End(xlUp).Row
        Me.ComboBox1.RowSource = "'Sheet2'!" amp; .Range(.Cells(1, 1), .Cells(lrCD, 1)).Address
    End With
End Sub

Private Sub CommandButton6_Click()
    Dim rCell As Range
    With ThisWorkbook.Worksheets("Sheet2")

        'Look for the selected value in column A.
        Set rCell = .Columns(1).Find( _
            What:=Me.ComboBox1.Value, _
            After:=.Cells(1, 1), _
            LookIn:=xlValues, _
            LookAt:=xlWhole)

        'If a value is found place the textbox value in the column next to it.
        If Not rCell Is Nothing Then
            rCell.Offset(, 1) = Me.TextBox5.Value
        End If
    End With

End Sub  
  

введите описание изображения здесь