Я создал форму для ввода и обновления данных. Почти все работает, кроме кнопки обновления.
Когда я нажимал кнопку обновления, обновлялся только первый аргумент. Например, допустим, я хочу обновить столбцы B, C, D, E.
1) При нажатии на обновление: обновился только столбец B, все остальное - нет.
2) Если я замаскировал аргумент для B как комментарий, будет обновлена ячейка в столбце C, а не B, D и E.
3) Если я замаскировал аргумент для C как комментарий, ячейка в столбце D будет обновлена, а не остальные.
Ниже приведен мой код для команды Обновить и ссылка на текущий рабочий лист
Private Sub cmdUpdate_Click()
Dim ws As Worksheet
Dim Ans As String
Set ws = Sheets("TEST")
If cmbSelect = "" Then
MsgBox "The Asset Number TextBox is empty, so no record can be updated in this case." & vbNewLine & _
"Please try again.....", vbExclamation, "Not Found!"
Exit Sub
End If
If WorksheetFunction.CountIf(ws.Columns(1), cmbSelect) = 0 Then
MsgBox "The Asset Number you entered doesn't exist." & vbNewLine & _
"Please try again.....", vbExclamation, "Not Found!"
Exit Sub
End If
Ans = MsgBox("Do you want to update the current record?", vbQuestion + vbYesNo, "Confirm Please!")
If Ans = vbNo Then
MsgBox "You have cancelled the update.", vbExclamation
Exit Sub
End If
r = WorksheetFunction.Match(Val(cmbSelect), ws.Columns(1), 0)
ws.Cells(r, "A") = Me.txtID.Text
Cells(r, "B") = Me.txtClient.Text 'testing different formula, results are the same
Cells(r, "C") = cmbProgram.Text
Cells(r, "D") = Me.TextStartDate.Text
ws.Cells(r, "E") = Me.TextEndDate.Text
ws.Cells(r, "H") = Me.TextLocation.Text
ws.Cells(r, "I") = Me.ComboRegion.Text
ws.Cells(r, "F") = Me.txtMeetOrg.Text
ws.Cells(r, "G") = Me.cmbCategory.Text
ws.Cells(r, "H") = Me.TextLocation.Text
ws.Cells(r, "I") = Me.ComboRegion.Text
ws.Cells(r, "J") = Me.txtOPID.Text
ws.Cells(r, "K") = Me.txtOPOwner.Text
Ws.Cells(r, "L") = Me.txtStatus
ws.Cells(r, "M") = Me.txtFName.Text
ws.Cells(r, "N") = Me.txtPO.Text
ws.Cells(r, "O") = Me.txtFFee.Text
ws.Cells(r, "P") = Me.txtFETransp.Text
ws.Cells(r, "Q") = Me.txtFEHotel.Text
ws.Cells(r, "R") = Me.txtFEMeal.Text
ws.Cells(r, "S") = Me.txtFEMisc.Text
ws.Cells(r, "T") = Me.txtTotalFTE.Text
ws.Cells(r, "U") = Me.txtTotalFE.Text
ws.Cells(r, "V") = Me.txtIE1Name.Text
ws.Cells(r, "W") = Me.txtIE1TE.Text
ws.Cells(r, "X") = Me.txtIE2Name.Text
ws.Cells(r, "Y") = Me.txtIE2TE.Text
ws.Cells(r, "Z") = Me.txtIE3Name.Text
ws.Cells(r, "AA") = Me.txtIE3TE.Text
ws.Cells(r, "AD") = Me.txtParticipant.Text
ws.Cells(r, "AE") = Me.txtResponse.Text
ws.Cells(r, "AF") = Me.txtOverall.Text
ws.Cells(r, "AG") = Me.txtNPS.Text
ws.Cells(r, "AH") = Me.txtImpact.Text
MsgBox "Record has been updated successfully.", vbInformation, "Record Updated!"
End Sub