Как мне избавиться от ошибки, которую я получаю в VBA excel
У меня есть книга excel с 2 текстовыми полями, в которые я в основном помещаю файл для копирования данных(динамически получаю диапазон для копирования) и еще один для копирования данных.
Ниже приведен мой код:
Что я уже пробовал:
Private Sub copydata_Click() Workbooks.Open Filename:=TextBox1.Text Workbooks.Open Filename:=TextBox2.Text Windows("f_database.xlsx").Activate 'Range("A1").Select Cells.Find(What:="ID", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate ActiveCell.Offset(1, 0).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Windows("data_output.xlsx").Activate Range("I17").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Windows("f_database.xlsx").Activate Range("A1").Select Cells.Find(What:="Address", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate ActiveCell.Offset(1, 0).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Windows("data_output.xlsx").Activate Range("A17").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False MsgBox "Done!" End Sub
Когда я запускаю код с помощью кнопки, я получаю ошибку(в строке
Range("A1").Select
):Run-time error '1004' Application-defined or object-defined error
Если я комментирую строку, то получаю другую ошибку :
Run-time error '91' Object variable or With block variable not set
Почему это происходит и как мне это исправить?
форма.файл xlsm
f_database.xlsx
data_output.xlsx
Richard MacCutchan
Вы пропустили вызов активации для выбора активного листа?
Member 12692000
Даже если я добавлю activeworkbook.рабочие листы("база данных").активация , ошибки все еще появляются. Я в замешательстве...
Dave Kreskowiak
Сообщение об ошибке означает, что переменная, которую вы пытаетесь использовать, является null или Nothing в VB.
Ваш код предполагает, что что-то сработало и вернуло то, что ожидалось, в переменную, но этого не произошло. Проверьте содержимое переменных объекта, прежде чем пытаться их использовать.
Member 12692000
Я не могу понять, что и почему является нулем или ничем в моем коде. Кажется, все в порядке, но это явно не так...