Disiento de ambas respuestas. No crear una referencia en absoluto, sino utilizar el enlace:
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
se dará cuenta de que la única diferencia en el código anterior es que las variables se declaran como objetos y se ejemplariza la instancia de Excel con CreateObject ()
Este código se ejecutará sin importar qué versión de Excel esté instalada, mientras que usar una referencia puede hacer que su código se rompa fácilmente si hay una versión diferente de Excel instalada o si está instalada en una ubicación diferente.
Además, el manejo de errores podría agregarse al código anterior para que si la instanciación inicial de la instancia de Excel falla (digamos, porque Excel no está instalado o no está registrado correctamente), su código puede continuar. Con un conjunto de referencia, su aplicación de acceso completa fallará si Excel no está instalado.
Sigue recibiendo el error "El tipo definido por el usuario no está definido" – Pablo
¿Tal vez un problema con las referencias? – Oneide
Agregue una referencia a "Microsoft Excel ... Biblioteca de objetos" usando el menú Herramientas -> Referencias. – shahkalpesh