Я новый ученик и начинающий в этом Excel VBA. Я создал одну программу VBA для регистрации и обновления информации о пациенте или данных для проверки здоровья. Используя тот же лист (регистр) для хранения зарегистрированных и обновленных данных, я смог получить предыдущие зарегистрированные / обновленные данные на основе раскрывающегося списка (cmbName), который я ссылался с этого сайта для функциональности обновления https://yodalearning.com/tutorials/update-delete-using-excel-vba-userform-vba-userform/. Однако во время обновления остальные данные обновляются и отражаются в соответствующих ячейках, но имя не получается, и ячейка для имени (C2) пуста.
Вот мой код (для обновления ):
Private Sub BT_Update_Click()
Dim emptyRow As Long
If Me.cmbName.Value = "" Then
MsgBox "Select name!", vbExclamation, "Name"
Exit Sub
End If
Sheets("register").Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer information
Cells(emptyRow, 1).Value = TB_RegNum.Value
Cells(emptyRow, 2).Value = TB_Date.Value
'Here where I failed to retrieve the name
'Cells(emptyRow, 3).Value = Me.cmbName.Value 'Name populated but new value not updated
'Cells(emptyRow, 3).Value = cmbName.Value 'Name populated but new value not updated
Cells(emptyRow, 4).Value = TB_NRIC.Value
Cells(emptyRow, 5).Value = TB_Address.Value
Cells(emptyRow, 6).Value = TB_Phone.Value
Cells(emptyRow, 7).Value = TB_Gender
Cells(emptyRow, 8).Value = TB_Race.Value
Cells(emptyRow, 9).Value = TB_Height.Value
и ниже для выпадающего списка (cmbName):
Private Sub cmbName_Change()
If Me.cmbName.Value = "" Then
MsgBox "Select Name!", vbExclamation, "Name"
Exit Sub
End If
On Error Resume Next
Me.TB_Date.Value = WorksheetFunction.Index(Range("B2:B1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_RegNum.Value = WorksheetFunction.Index(Range("A2:A1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_NRIC.Value = WorksheetFunction.Index(Range("D2:D1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_Address.Value = WorksheetFunction.Index(Range("E2:E1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_Phone.Value = WorksheetFunction.Index(Range("F2:F1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_Gender.Value = WorksheetFunction.Index(Range("G2:G1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_Race.Value = WorksheetFunction.Index(Range("H2:H1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))
Me.TB_Height.Value = WorksheetFunction.Index(Range("I2:I1000"), WorksheetFunction.Match(cmbName.Value, Range("C2:C1000"), 0))