Я пытаюсь ввести данные через пользовательскую форму, чтобы найти конкретный элемент инвентаризации, а затем найти последнюю пустую строку для ввода данных. Происходит то, что предыдущие данные перезаписываются, а новые данные заполняются под ним. Не найдена последняя строка конкретного столбца.
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim iRow As Long
Dim Lastrow As Long
Dim Found As Range
Set ws = Worksheets("Inventory Log")
Lastrow = ws.Range("C:WD").Find("*", , , , xlByRows, xlPrevious).Row
If Me.itemnumber.Value = "" Then
MsgBox "select item number please"
Else
Set Found = ws.Range("C:WD").Find(What:=Me.itemnumber.Value, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows,_
SearchDirection:=xlNext,_
MatchCase:=False)
If Found Is Nothing Then
MsgBox "Not found"
Else
For iRow = 15 To Lastrow
ws.Cells(iRow, Found.Column).Value = Me.ponumber.Value
ws.Cells(iRow, Found.Column).Offset(1, 0).Value = Me.quantity.Value
Next iRow
End If
End If
With ws
.Cells(iRow, Found.Column).Value = "PO#:" & "" & Me.ponumber.Value
.Cells(iRow, Found.Column).Offset(1, 0).Value = Me.quantity.Value
End With
End Sub
Первая запись работает как следует, но после второй записи предыдущие данные перезаписываются, затем они заносятся в ячейки, которые должны быть, если они находятся в том же столбце. Если это другой столбец, правильные данные заполняются под первой строкой ввода и над ней (см. Рисунок ниже).
![enter image description here](https://i.stack.imgur.com/8EQLc.png)