У меня есть простая форма, которая позволяет вводить счет в разное время дня.
Моя форма загружает значения последней строки таблицы в пользовательскую форму, так что тот, кто открывает форму для ввода следующего счетчика, получает предыдущие значения, помещенные в форму:
Private Sub UserForm_Initialize()
Dim lr As Long
lr = ActiveSheet.Range("A1").End(xlDown).Row
eightWkd.Value = Cells(lr, 3)
nineWkd.Value = Cells(lr, 4)
ten30Wkd.Value = Cells(lr, 6)
noonWkd.Value = Cells(lr, 8)
one30Wkd.Value = Cells(lr, 10)
threeWkd.Value = Cells(lr, 12)
four30Wkd.Value = Cells(lr, 14)
sixWkd.Value = Cells(lr, 15)
Но каждая отправка создает новую строку.
![screenshot of excel sheet](https://i.stack.imgur.com/bXvDl.jpg)
Вот мой код для моей кнопки отправки, установки значений. Изменение загруженных значений работает. Я нахожу первый пустой ряд
Private Sub SubmitButton_Click()
Dim ws As Worksheet
Set ws = Worksheets("daily_count")
Dim lr As Long, varDay As Long
With ws
lr = .Cells(.Rows.Count, varDay).End(xlUp).Offset(1, 0).Row
.Cells(lr, 1).Value = Me.DateWkd.Value
.Cells(lr, 2).Value = Me.DayWkd.Value
.Cells(lr, 3).Value = Me.eightWkd.Value
.Cells(lr, 4).Value = Me.nineWkd.Value
.Cells(lr, 6).Value = Me.ten30Wkd.Value
.Cells(lr, 8).Value = Me.noonWkd.Value
.Cells(lr, 10).Value = Me.one30Wkd.Value
.Cells(lr, 12).Value = Me.threeWkd.Value
.Cells(lr, 14).Value = Me.four30Wkd.Value
.Cells(lr, 15).Value = Me.sixWkd.Value
Я попробовал следующую логику, чтобы выбрать между последней существующей строкой и новой строкой, основываясь на том, установлено ли значение даты (столбец A), но это не сработало.
If ActiveSheet.Range("A1") = Format(Date, "mm/dd/yy") Then
r = ActiveSheet.Range("A1").End(xlDown).Row
Else
r = .Cells(.Rows.Count, varDay).End(xlUp).Offset(1, 0).Row
End If
Итак, как мне обновить ячейки в строке вместо создания новой строки?