Нужна помощь с Excel, VBA и пользовательскими формами, особенно при записи существующих данных - PullRequest
0 голосов
/ 05 марта 2019

В настоящее время я занимаюсь разработкой системы ввода данных на своем рабочем месте, использующей пользовательские формы для простоты ввода, и немного застрял в некоторых областях кодирования.Я хочу, чтобы он проверял, находится ли ссылочный номер, вставленный в форму, в уже сохраненных данных, и если нет, добавляет данные в виде новой строки.Я справился с этим аспектом, но застрял в следующей части - над записью существующих данных, если имеется ссылочный номер.Мой код до сих пор:

Sub savebutton_click ()

Dim emptyrow As Long
Dim r as Excel.Range

Set r = sheets("data").range("a:a").find(what:=Auditref.Text.LookAt:=xlPart, MatchCase:= True)

If r Is Nothing then
    emptyrow = WorksheetFunction.CountA(range("a:a")) + 1
    Cells(emptyrow, 1).value = auditref.value
    Cells(emptyrow, 2).value = datereview. Value
Else
    k = Auditref.Value
    Cells(kRow, 2).value = datereview.value
End if

End sub 

Это вызывает ошибку в точке ячеек (kRow, 2), и я теряюсь, как это отсортировать.

Есть идеи?

1 Ответ

0 голосов
/ 06 марта 2019

Примерно так будет работать:

Dim sht as worksheet, r as range

set sht = sheets("data")
Set r = sht.range("a:a").find(what:=Auditref.Text, _
                              LookAt:=xlPart, MatchCase:= True)

If r Is Nothing then set r = sht.cells(sht.rows.count, 1).end(xlup).offset(1, 0)
with r.entirerow
    .cells(1).value = auditref.value
    .Cells(2).value = datereview.value
end with

Вы уверены, что хотите xlPart в Find() там? Похоже, вы хотите точное совпадение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...