Как непрерывно записывать данные из формы пользователя в vba листа Excel?

#excel #vba

Вопрос:

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

Примечание:Если данные уже существуют, обновите соответствующие столбцы или запишите новые данные в следующую пустую строку.

мой код приведен ниже.

 Option Explicit

Private Sub cmdAdd_Click()

    Dim FindValue As String, Rng As Range
    Dim iRow As Long, ws2 As Worksheet
    Set ws2 = Worksheets("ITEM NAMES")
    iRow = ws2.Cells(Rows.Count, 2).End(xlUp).Row   1
    FindValue = TextItemName
    If Trim(FindValue) <> "" Then
        With ws2.Range("E:E")
            Set Rng = .Find(What:=FindValue, _
                            After:=.Cells(1), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False)
            If Not Rng Is Nothing Then
                Rng.Offset(0, 1) = TextHSNCode.Value
            Else
                ws2.Cells(iRow, 5).Value = TextItemName.Value
                ws2.Cells(iRow, 6).Value = TextHSNCode.Value
              
            End If

        End With
    End If
End Sub
 

Комментарии:

1. Вам нужно будет включить что-то, чтобы найти последнюю использованную строку и записать свои данные в следующую строку. Есть тысячи других вопросов, на которые уже есть ответы о том, как это сделать. Ищите здесь или в Google 🙂

2. Вы пишете в столбцы 5 и 6, но используете последнюю строку в столбце 2. Возможно, измените на iRow = ws2.Cells(Rows.Count, 5).End(xlUp).Row 1

3. Спасибо тебе Mr.@CDP1802, Ты сделал мой день лучше. Проблема решена