Siempre que tenga una gran cantidad de datos, puede ser útil tener una fila específica a la vista cuando se desplaza por la pantalla.
Este artículo le mostrará cómo congelar el panel superior dependiendo de la cantidad de datos que tiene.
Un escenario típico en el panel de comando Freeze VBA es útil
El ejemplo que vamos a utilizar es un archivo descargado que contiene más de 100 entradas.
Podría ser una lista de clientes o empleados en la que le gustaría "congelar" la fila de arriba al desplazarse por las entradas.
Los datos podrían tener este aspecto:
Name ====== Emp1 Emp2 Emp3 . . Emp100 Emp101
Vamos a suponer que usted está usando VBA para guardar los datos en una nueva hoja de cálculo, en lugar de utilizar una copia manual y pegar.
Una vez que el código ha terminado de descargar los datos, es posible que desee congelar la fila superior si hay más de 100 entradas.
En primer lugar, usted tendrá que trabajar fuera cuántas entradas hay:
dim rng as range
dim entries as long
set rng=range("a1").currentRegion.columns(1)
entries=rng.rows.count
Una vez que sepa cuántas filas hay en el conjunto de datos que condicionalmente puede establecer el orden de congelación del panel seleccionando la fila debajo de la celda especificada.
Vamos a congelar la fila de arriba, pero vamos a necesitar para "descongelar" las lunas existentes en primer lugar.
activeWindow.freezepanes=falseif entries >100 thenrange("a2").activateactiveWindow.freezepanes=trueEnd If
Si necesita especificar la fila a congelar puede insertar el siguiente comando en el código.
myRow=x+1
range("a" & x).activate
activeWindow.freezepanes=true
La misma técnica se podría utilizar para establecer el orden de congelación sobre la base de otras variables o criterios. En el siguiente ejemplo, el código se bloquea el panel debajo de la celda que contiene "Enero 2013".
set rng=range("a1").currentRegion.columns(1)myCell="January 2013"For x = 1 To rng.Rows.CountIf rng.Rows(x) = str ThenmyCell = rng.Rows(x).Offset(1, 0).AddressExit ForEnd IfNextRange(myCell).ActivateActiveWindow.freezePanes = True
O bien, el código podría buscar una celda en negrita.
For x = 1 To rng.Rows.CountIf rng.Rows(x).font.bold=true ThenmyCell = rng.Rows(x).Offset(1, 0).AddressExit ForEnd If Next Range(myCell).Activate ActiveWindow.freezePanes = True
Se podría activar el código de varias maneras:
- Configuración de un evento de cambio de hoja de cálculo para identificar cuando el número de entradas supera un cierto numero
- Escriba el código en un procedimiento de importación de datos existente
- Crear una etiqueta como negrita o un valor de celda para que el código para identificar el lugar correcto para insertar el panel congelado.
Resumen
Excel es capaz de almacenar grandes cantidades de datos, pero es una buena idea mantener el diseño de la hoja de cálculo tan fácil de usar como sea posible. Al utilizar el comando Inmovilizar paneles que pueden reducir los errores y hacer la vida más fácil para cualquier persona que utilice el archivo de Excel.
0 comentarios:
Publicar un comentario