¿Cómo hacer referencia a los objetos de Excel en Access VBA?

¿Qué declaraciones tengo que hacer para poder usar objetos y constantes de Excel desde mi script VBA de Access 2007?

Dim wb As Workbook 

o

 Set objExcelApp = New Excel.Application 

o

 .Borders(xlEdgeBottom) 

Gracias

Primero necesita establecer una referencia (Menú: Herramientas-> Referencias) a la Biblioteca de objetos de Microsoft Excel y luego puede acceder a todos los Objetos de Excel.

Después de agregar la referencia, tiene acceso completo a todos los objetos de Excel. Necesita agregar Excel delante de todo, por ejemplo:

 Dim xlApp as Excel.Application 

Digamos que usted agregó un Objeto de libro de Excel en su Formulario y lo llamó xLObject.

Aquí es cómo accede a una hoja de este objeto y cambia un rango

 Dim sheet As Excel.Worksheet Set sheet = xlObject.Object.Sheets(1) sheet.Range("A1") = "Hello World" 

(Copié lo anterior de mi respuesta a esta pregunta)

Otra forma de utilizar Excel en Access es iniciar Excel a través de un Módulo de acceso (la forma en que shahkalpesh lo describió en su respuesta)

No estoy de acuerdo con las dos respuestas. No cree una referencia en absoluto, pero use el enlace tardío:

  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 

Notará que la única diferencia en el código anterior es que todas las variables se declaran como objetos y crea una instancia de Excel con CreateObject ().

Este código se ejecutará independientemente de la versión de Excel que 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, de modo que si la instanciación inicial de la instancia de Excel falla (por ejemplo, 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.

Dentro de un módulo

 Option Explicit dim objExcelApp as Excel.Application dim wb as Excel.Workbook sub Initialize() set objExcelApp = new Excel.Application end sub sub ProcessDataWorkbook() dim ws as Worksheet set wb = objExcelApp.Workbooks.Open("path to my workbook") 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 sub Release() set objExcelApp = Nothing end sub