Palabras clave: Excel, automatización, registros
Autor: Jesus Mansilla (Mihura)
En ocasiones necesitamos leer un fichero Excel mediante automatización y, para poder mostrar "algo" que nos de idea del progreso, es necesario averiguar la cantidad de registros afectados,
Una opción es insertar una fórmula en una celda "lejana" que nos haga un COUNTA (CONTARA) de los registros de una columna que sepamos debe estar toda rellena.
xls.ActiveSheet.Cells(1, 255).FormulaR1C1 = "=COUNTA(C1)
Leer el resultado (restarle 1 si existe una fila de titulos) y eliminar el contenido de la celda. Hay que acordarse de que, al cerrar el Excel, no se guarden los cambios.
Jesus presenta una alternativa:
UltimaFila = xls.ActiveSheet.Cells(xls.ActiveSheet.Rows.Count, 1).End(xlUp).Row
Traducido: posicionarse en la ultima fila de la hoja (ActiveSheet.Rows.Count) en su primera columna (1) y "tirar p'arriba" con .End(xlUp) (equivalente a Ctrl + flecha arriba). Ello posiciona en la ultima celda escrita de la columna. Y de allí tomamos la fila (.Row)
Lo mismo para las columnas
UltimaColumna = xls.ActiveSheet.Cells(1, xls.ActiveSheet.Columns.Count).End(xlToLeft).Column
Ingenioso.