Я не согласен с обоими ответами. Не создавайте ссылку вообще, а используйте позднюю привязку:
Dim objExcelApp As Object
Dim wb As Object
Sub Initialize()
Set objExcelApp = CreateObject("Excel.Application")
End Sub
Sub ProcessDataWorkbook()
Set wb = objExcelApp.Workbooks.Open("path to my workbook")
Dim ws As Object
Set ws = wb.Sheets(1)
ws.Cells(1, 1).Value = "Hello"
ws.Cells(1, 2).Value = "World"
'Close the workbook
wb.Close
Set wb = Nothing
End Sub
Вы заметите, что единственным отличием в приведенном выше коде является то, что все переменные объявлены как объекты, и вы создаете экземпляр Excel с помощью CreateObject ().
Этот код будет выполняться независимо от того, какая версия Excel установлена, а использование ссылки может легко привести к поломке вашего кода, если установлена другая версия Excel или если она установлена в другом месте.
Кроме того, обработку ошибок можно добавить в приведенный выше код, чтобы в случае сбоя при первоначальном создании экземпляра Excel (скажем, из-за того, что Excel не установлен или неправильно зарегистрирован), ваш код может продолжаться. При наличии набора ссылок все приложение Access не будет работать, если Excel не установлен.