Excel VBA | Пользовательская форма, которая обновляет выбранную строку в списке - PullRequest
0 голосов
/ 28 марта 2019

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

а. Я создал две пользовательские формы;

  • UserForm1 = Добавление данных в последнюю строку, отображение данных в списке и удаление строки
  • UserForm2 = Вы можете открыть его в UserForm1 (я назвал «Редактировать»)

б. Данные, которые у меня есть в основном 4 столбца и значения;

ID  ||  Name  || Last Name || Date

Когда вы нажимаете кнопку «Редактировать» для этой строки и строки, которую вы хотите обновить в списке, он открывает 3 текстовых поля, с помощью которых вы можете изменить ID, Name и Last Name. Дополнительно есть кнопка «Сохранить»

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

Что я хочу сделать, так это изменить все значения (ID, Name, Last Name), а не только Name и Last Name? Я старался и много искал, но все, что я делал, не получалось. Вот мой код;

Код кнопки редактирования в пользовательской форме1

Private Sub CommandButton4_Click()
    UserForm2.Label4.Caption = ListBox1.List(ListBox1.ListIndex) ' I wanted to update this data also
    UserForm2.TextBox1.Text = ListBox1.Column(1, ListBox1.ListIndex)
    UserForm2.TextBox2.Text = ListBox1.Column(2, ListBox1.ListIndex)
    UserForm2.Show
End Sub

Сохранить код кнопки в пользовательской форме2

'When I make changes on this, It updates all rows with the entered values. This is original code that I want to make changes.

Private Sub CommandButton2_Click()
Dim i As Integer

For i = 2 To Range("A10000").End(xlUp).Row
    If Cells(i, 1) = Label4.Caption Then
        Cells(i, 2) = TextBox1.Text
        Cells(i, 3) = TextBox2.Text
    End If
Next i

MsgBox "Saved!", vbInformation
Unload Me
End Sub
...