Страницы: 1
RSS
VBA Outlook, Ошибка Run Time Error 91 (Object variable or block variable not set)
 

Добрый день!

Есть код для VBA Outlook для открытия файла Excel, копирования из него диапазона, и вставки в другой файл, который создаём. Когда первый раз запускаю, макрос отрабатывает корректно, во второй раз пишет ошибку "Run Time Error 91 (Object variable or block variable not set)". Не понимаю почему так происходит. Файл Excel может быть абсолютно любой. Пожалуйста помогите поправить код и разобраться в ситуации.

Код
Sub Check_OpenExcel()

Dim objExlApp As Object

Set objExlApp = CreateObject("Excel.Application")
objExlApp.Visible = True
Set objExlDoc = objExlApp.Workbooks.Open("G:\Папка\Test.xlsx")
objExlDoc.Application.Visible = True
Set objExlApp = Nothing

With objExlDoc.Worksheets("Sheet0")
.Range("A1").Select
.Range(Selection, Selection.End(xlToRight)).Select '<----- НА ЭТОЙ СТРОКЕ КОДА ВОЗНИКАЕТ ОШИБКА
.Range(Selection, Selection.End(xlDown)).Select
End With
Selection.Copy
Workbooks.Add
Worksheets("Лист1").Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
ActiveWorkbook.SaveAs FileName:="G:\Папка\Test2.xlsx"
Set objExlDoc = Nothing
ActiveWorkbook.Close
    
End Sub
 
Здесь форум по Excel
 
Ну так это вопрос как раз как выполнить задачу по файлу Excel, просто с помощью кода в Outlook.
Те кто пишут макросы для Excel так или иначе сталкиваются с этим.
 
Ametist69, вместо Selection пишите objExlApp.Selection.
xlToRight замените на -4161 , xlDown на -4121 , xlPasteValues на -4163 , xlNone на -4142
или определите эти константы/переменные. Или подключите библиотеку Microsoft Excel xx.x Object Library.
Изменено: Казанский - 13.03.2019 10:41:42
 
Код
Const xlToRight = &HFFFFEFBF
Const xlDown = &HFFFFEFE7
...
With objExlDoc.Worksheets("Sheet0")
 .Range("a1").Resize(.Range("a1").End(xlDown).Row, .Range("a1").End(xlToRight).Column).Copy
End With
Workbooks.Add
...
По вопросам из тем форума, личку не читаю.
 
Цитата
Казанский написал:
вместо Selection пишите objExlApp.Selection.
Спасибо большое за помощь. Все заработало. Понял в чём проблема была.
Что касается библиотеки Microsoft Excel xx.x Object Library, подключил её когда только начал писать макрос)))
Страницы: 1
Наверх