Я пытаюсь вытащить и обновить некоторые записи через UserForm
, и я почти получил его, за исключением фрагмента кода, который не работает должным образом. Он должен переопределить предыдущую запись (любая информация найдена в той же строке, что и запись, найденная IDNum.Excel VBA UserForm - обновить/переопределить данные
По какой-то причине он начинает копировать данные по столбцу B, когда он должен переопределять все, начиная с Column A
.
Вот код.
Private Sub RecordUpdate_Click()
Dim LastRow As Long
Dim IDNum As String
Dim rngIDNum As Range
Dim WriteRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Records")
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set rngIDNum = .Range("E1:E" & LastRow)
IDNum = txtID.Value
WriteRow = Application.Match(IDNum, rngIDNum, 0)
Cells(WriteRow, 1).Select
With ActiveCell
.Offset(0, 1).Value = txtName.Value
.Offset(0, 2).Value = txtlName.Value
.Offset(0, 3).Value = txtGender.Value
.Offset(0, 4).Value = txtAge.Value
.Offset(0, 5).Value = txtID.Value
End With
End With
End Sub
Он оставляет нетронутыми все, что в Column A
и копирует изменяемые данные от B до F вместо а Е. Все входы высоко ценятся.
Спасибо за быстрый ответ и помощь. Я попробовал оба варианта и работал только первый вариант. Второй вариант с измененной версией скрипта вызвал ошибку. Ошибка времени выполнения 1004: Определенная пользователем или Object-defined ошибка. Я собираюсь с первым вариантом. Еще раз спасибо. – BlueSun3k1
@ user1582396 Какая строка возвращает ошибку? – L42
Указывает на .Offset (0, -4) .Value = txtName.Value. Сейчас у меня проблемы с обоими сценариями. по первому варианту WriteRow = Application.Match (IDNum, rngIDNum, 0) вызывает сбой сценария «WriteRow» Возвращает 0, когда я наводил на него надстройку во время отладки. – BlueSun3k1