У меня есть следующий код для сохранения новой записи. Я отображаю запись, выбранную из списка. Когда пользователь нажимает «Добавить новый», я очищаю текстовые поля и позволяю им вводить новые данные в текстовые поля. Когда они нажимают «Сохранить», только первое текстовое поле (номер участника) сохраняется с новым значением. Все столбцы принимают значение записи, которая отображалась до того, как пользователь нажал кнопку «Добавить новый».
Private Sub btnSave_Click()
Dim ws As Worksheet
Dim newrow As Long
Set ws = Worksheets("Master")
newrow = Application.WorksheetFunction.CountA(ws.Range("A:A")) + 1
ws.Cells(newrow, 1).Value = Me.txtMembershipNo.Value
ws.Cells(newrow, 2).Value = Me.txtName.Value
ws.Cells(newrow, 3).Value = Me.txtAddress.Value
ws.Cells(newrow, 4).Value = Me.cmboxState.Value
ws.Cells(newrow, 5).Value = Me.cmboxCategory.Value
ws.Cells(newrow, 6).Value = Me.cmboxType.Value
ws.Cells(newrow, 7).Value = Me.cmboxStatus.Value
ws.Cells(newrow, 8).Value = Me.txtRemarks.Value
btnDelete.Enabled = True
btnAddNew.Enabled = True
btnUpdate.Enabled = False
btnSave.Enabled = False
btnCancel.Enabled = False
End Sub
![enter image description here](https://i.stack.imgur.com/sVFqJ.png)
Private Sub ListBox1_Click()
txtMembershipNo.Text = ListBox1.List(ListBox1.ListIndex, 0)
txtName.Text = ListBox1.List(ListBox1.ListIndex, 1)
txtAddress.Text = ListBox1.List(ListBox1.ListIndex, 2)
cmboxState.Text = ListBox1.List(ListBox1.ListIndex, 3)
cmboxCategory.Text = ListBox1.List(ListBox1.ListIndex, 4)
cmboxType.Text = ListBox1.List(ListBox1.ListIndex, 5)
cmboxStatus.Text = ListBox1.List(ListBox1.ListIndex, 6)
txtRemarks.Text = ListBox1.List(ListBox1.ListIndex, 7)
btnDelete.Enabled = True
btnUpdate.Enabled = True
End Sub