Обновление / редактирование данных - VBA Excel - PullRequest
1 голос
/ 12 марта 2020

введите описание изображения здесь Я просмотрел страницы и не могу найти ответ. Любая помощь очень ценится. Я получил код для обновления данных в листе из формы VBA, однако он просто продолжает переписывать верхнюю строку и не редактирует указанные данные c строк. Я пытаюсь заставить его редактировать отображаемые данные, а не перезаписывать данные верхних строк. любая помощь приветствуется. Код, который я использую:

Private Sub cmdupdate_Click()

 Dim rowselect As Single
 rowselect = rowselect + 2
 Rows(rowselect).Select

 Cells(rowselect, 1) = Me.txtname.Value
 Cells(rowselect, 2) = Me.txtposition.Value
 Cells(rowselect, 3) = Me.txtassigned.Value
 Cells(rowselect, 4) = Me.cmbsection.Value
 Cells(rowselect, 5) = Me.txtdate.Value
 Cells(rowselect, 7) = Me.txtjoint.Value
 Cells(rowselect, 8) = Me.txtDAS.Value
 Cells(rowselect, 9) = Me.txtDEROS.Value
 Cells(rowselect, 10) = Me.txtDOR.Value
 Cells(rowselect, 11) = Me.txtTAFMSD.Value
 Cells(rowselect, 12) = Me.txtDOS.Value
 Cells(rowselect, 13) = Me.txtPAC.Value
 Cells(rowselect, 14) = Me.ComboTSC.Value
 Cells(rowselect, 15) = Me.txtTSC.Value
 Cells(rowselect, 16) = Me.txtAEF.Value
 Cells(rowselect, 17) = Me.txtPCC.Value
 Cells(rowselect, 18) = Me.txtcourses.Value
 Cells(rowselect, 19) = Me.txtseven.Value
 Cells(rowselect, 20) = Me.txtcle.Value

 End Sub

1 Ответ

0 голосов
/ 12 марта 2020

заменить следующую часть для выбора строки ..

Dim rowselect As Integer
If Range("A:A").Find(Me.txtname.Value) Is Nothing Then
    Msg = "The Text Name could not be found in Column A" & _
    vbLf & "Do you want to create a new record?"    ' Define message.
    Style = vbYesNo + vbCritical + vbDefaultButton1 ' Define buttons.
    Title = "CAUTION"   ' Define title.
    Response = MsgBox(Msg, Style, "CAUTION")  '(Msg, Style, Title)
    If Response = vbYes Then
    rowselect = Range("A" & Rows.Count).End(xlUp).Row + 1
    'This will give you number of the first blank row below you table in Column A 
    Else: Exit Sub
    End If
Else
rowselect = Range("A:A").Find(Me.txtname.Value).Row
End If

' and then all the following shall work correctly each time you cilck the button .. if the form has all those fields
Cells(rowselect, 1) = Me.txtname.Value
Cells(rowselect, 2) = Me.txtposition.Value
Cells(rowselect, 3) = Me.txtassigned.Value ' and so on
...