martes, noviembre 21, 2017

Recomendamos: Referencias a partes de una Tabla de Excel mediante VBA

Referencias a partes de una Tabla de Excel mediante VBA


Las Tablas de Excel son un enorme apoyo para la programación en VBA, entre otras cosas,porque son unos objetos que llevan implícitos unos nombres de rango que podemos utilizar a la hora de diseñar nuestro código.


Una determinada Tabla de Excel ya tiene un nombre de rango que hace referencia a ella misma, pero también nombres de rango particulares para la fila de encabezados y para la fila de totales. También, cada una de las filas y de las columnas tienen unas formas de ser referenciadas.


Vamos a ver a continuación cuál es el código necesario para referirnos a esas partes de una tabla o a la tabla entera:

1) Para seleccionar la TABLA ENTERA (encabezados y totales incluidos)     ActiveSheet.ListObjects("NombreDeMiTabla").Range.Select 2) Para seleccionar solo el CUERPO de la tabla (sin encabezados ni totales)
   ActiveSheet.ListObjects("
NombreDeMiTabla").DataBodyRange.Select

... o bien...

[NombreDeMiTabla].Select

(Al fin y al cabo, un nombre de tabla es un nombre de rango para VBA)

3) Para seleccionar solo la FILA DE ENCABEZADOS de la tabla       ActiveSheet.ListObjects("NombreDeMiTabla").HeaderRowRange.Select
4) Para seleccionar solo la FILA DE TOTALES de la tabla       ActiveSheet.ListObjects("NombreDeMiTabla").TotalsRowRange.Select 5) Para seleccionar la 3ª COLUMNA (entera o solo el cuerpo) de la tabla      ActiveSheet.ListObjects("NombreDeMiTabla").ListColumns(3).Range.Select
     ActiveSheet.ListObjects("
NombreDeMiTabla").ListColumns(3).DataBodyRange.Select 6) Para seleccionar la 3ª FILA de datos de la tabla      ActiveSheet.ListObjects("NombreDeMiTabla").ListRows(4).Range.Select

Mediante índices también podemos seleccionar cualquier elemento concreto dentro de los rangos que acabamos de conocer. Por ejemplo:

a) Para seleccionar el 3er encabezado      ActiveSheet.ListObjects("NombreDeMiTabla").HeaderRowRange(3).Selec

t

b) Para un dato concreto dentro del cuerpo de la tabla     ActiveSheet.ListObjects("NombreDeMiTabla").DataBodyRange(3, 2).Select

José Manuel Pomares Medrano



Excel

via [témporaExcel] [http://ift.tt/2zbQ255]

November 20, 2017 at 01:34PM

No hay comentarios.:

Publicar un comentario