Visual Basic - importar datos de Excel
Microsoft Excel es una aplicación muy flexible y permite la comunicación con otros programas como el Visual Basic. Esto significa que podemos pasar datos entre Excel y programas como el Visual Basic.
¿Por que pasar datos entre MS Excel y Visual Basic?
En Visual Basic, a veces se utiliza una hoja Excel como una sencilla base de datos, y por consiguiente tendremos la necesidad de poder abrir este archivo Excel desde la otra aplicación. A continuación detallamos cómo proceder para establecer contacto entre Excel y Visual Basic.
Exportar Excel a Visual Basic
Excel permite la exportación de datos a un montón de aplicaciones como de Visual Basic, bases de datos, XML etc. Es este ejemplo Excel presentamos una solución para pasar datos desde celdas Excel a una variable Visual Basic.
En concreto vamos a hacer lo siguiente:
- Abrimos un archivo Excel desde VB
- Leemos el contenido del archivo Excel
- Pasamos el contenido Excel a una variable Visual Basic
- Por último Cerramos la hoja de cálculo
Configuraciones Excel/Visual Basic
Para que esto funcione, Visual Basic necesitará cargar los objetos de Excel. Por eso, no olvides marcar Microsoft Excel x.xx Object Library en tu Visual Basic - Proyecto/Referencias
Código Visual Basic para importar datos Excel
Private Sub LeerExcel() 'dimensiones Dim xlApp As Excel.Application Dim xlLibro As Excel.Workbook Dim xlHoja As Excel.Worksheet Dim varMatriz As Variant Dim lngUltimaFila As Long 'abrir programa Excel Set xlApp = New Excel.Application 'xl.Visible = True 'abrir el archivo Excel (archivo en otra carpeta) Set xlLibro = xlApp.Workbooks.Open _ ("c:\Fax2.xls", True, True, , "") 'abrir el archivo Excel (archivo en la misma carpeta) Set xlLibro = xlApp.Workbooks.Open(App.Path & _ "\Fax2.xls", True, True, , "") Set xlHoja = xlApp.Worksheets("Hoja1") '1. Si conoces el rango a leer 'varMatriz = xlHoja.Range("A1:C10").Value '2. Si no conoces el rango lngUltimaFila = _ Columns("A:A").Range("A65536").End(xlUp).Row varMatriz = xlHoja.Range(Cells(1, 1), _ Cells(lngUltimaFila, 1)) 'utilizamos los datos... Text1.Text = varMatriz(27, 1) 'cerramos el archivo Excel xlLibro.Close SaveChanges:=False xlApp.Quit 'reset variables de los objetos Set xlHoja = Nothing Set xlLibro = Nothing Set xlApp = Nothing End Sub


