Saltar al contenido

Copiar y pegar los anchos de columna en Microsoft Excel

Los usuarios de hojas de cálculo se sienten a veces frustrados por las inconsistencias percibidas en Excel, por ejemplo, a veces los anchos de las columnas se pegan con sus datos, pero a veces no lo hacen, lo que le permite ajustar manualmente los anchos de las columnas.

En este artículo explicaré algunos de los matices que implica copiar y pegar los anchos de columna, así como autorizarte a pegar consistentemente los anchos de columna cuando quieras. También explicaré los matices y limitaciones de pegar alturas de filas, así como una línea de código de programación que puedes usar para transferir alturas de filas de una hoja de trabajo a otra.

Copiar y pegar los anchos de columna en Microsoft Excel
Copiar y pegar los anchos de columna en Microsoft Excel

En cuanto a la pregunta de «¿pegará mis anchos de columna o no?», la respuesta depende del área de la hoja de cálculo que hayas seleccionado. Cuando copias un rango de celdas, como se muestra en la Figura 1, Excel hace lo que le pediste y pega sólo el contenido de la celda. Sin embargo, como se muestra en la Figura 2, cuando se copian columnas enteras y se pegan en otro lugar, Excel también pega los anchos de las columnas.

Figura 1: Los anchos de columna no se pegan automáticamente cuando se copia un rango de celdas.

Figura 2: Debes copiar columnas enteras para pegar los anchos de columna en otro lugar.

Ahora que sabes cuándo Excel transferirá los anchos de las columnas, ¿qué pasa con las situaciones en las que quieres copiar un rango de celdas, pero aún así pegar los anchos de las columnas? En Excel 2010 y versiones posteriores, puedes usar la opción Mantener anchos de columna de origen al pegar, como se muestra en la Figura 3. Alternativamente, en cualquier versión de Excel puede copiar datos de un rango de celdas, y luego usar el comando Pegado especial . Dentro del cuadro de diálogo Pegado especial puedes hacer doble clic en Anchos de columna.

Figura 3: La opción de pegar Anchos de Columna de Fuente permite aplicar los anchos de columna de un rango de celdas.

A la inversa, puede que tenga que copiar columnas enteras, pero opte por no pegar los anchos de las columnas. En tales situaciones, elija entre Fórmulas y Formatos de números o Valores y formatos de números , como se muestra en la Figura 4.

Figura 4: Las opciones Fórmulas/Valores y Formatos de Número permiten pegar columnas enteras sin transferir los anchos.

Ahora que tienes la disposición del terreno en el pegado de los anchos de las columnas, veamos cómo transferir las alturas de las filas. Puedes transferir las alturas de las filas de una sección de una hoja de trabajo a otra si seleccionas filas enteras.

Para empezar, ajusta manualmente la altura de las filas para dos o más filas en una hoja de trabajo determinada. Una forma de hacerlo es hacer clic con el botón derecho del ratón en una selección de filas y luego elegir la altura de la fila. Si desea duplicar el tamaño de una fila estándar en una hoja de cálculo, introduzca 30 cuando se le solicite. La transferencia de las alturas de las filas funciona de la misma manera que en las figuras 1 y 2 para las columnas: las alturas de las filas no se transfieren cuando se selecciona un rango de celdas, sólo cuando se seleccionan filas completas.

Excel no ofrece una opción de Pegado Especial para las alturas de las filas, pero se puede utilizar una línea de código de programación para transferir las alturas de las filas de una hoja de trabajo a la siguiente hoja de trabajo de la serie, como se ilustra en la Figura 5.

  1. Presione Alt-F11 en su teclado para mostrar el editor de Excel Visual Basic . Los usuarios de Mac deben pulsar Fn-Alt-F11 . Aunque parece un programa separado, es un aspecto oculto de Excel que la mayoría de los usuarios no han visto antes.
  2. Haz clic en el menú Ver dentro del Editor de Visual Basic .
  3. Seleccione Ventana inmediata , o pulse Ctrl-G en su teclado (para Mac, Ctrl-Cmd-G ).
  4. En este punto la ventana Inmediato aparecerá en pantalla. Esta es un área especial donde cualquier código de programación que escriba será ejecutado inmediatamente; de ahí el nombre.
  5. Escriba la siguiente línea de código de programación en la ventana Inmediato , exactamente como está escrito abajo, y luego pulse Introducir .

Para cada r en Selección. Filas: Hojas de trabajo(ActiveSheet.Index+1).Filas(r.Row).Rowheight=r.RowHeight: Siguiente

La línea del código de programación debe aparecer como una sola línea dentro de la ventana Inmediato .

La desventaja de la ventana Inmediata es que no obtienes ninguna retroalimentación directa si tu código de programación funcionó, aparte de ver que las alturas de las filas han cambiado en la hoja de trabajo después de la que seleccionaste las filas. Los mensajes de error aparecerán si presionas Enter cuando la línea de código esté incompleta o contenga errores tipográficos.

También puede encontrarse con un error si la hoja de trabajo a la que se hace referencia está protegida mediante el comando Proteger hoja en el menú Revisión de Excel o si ha seleccionado filas en la última hoja dentro de un libro de trabajo.

  1. Puedes salir con seguridad del Visual Basic Editor una vez que hayas ejecutado la línea de código.

Figura 5: Puedes usar una línea de código de programación para transferir las alturas de las filas de una hoja de trabajo a otra.

La línea de código mencionada utiliza Visual Basic for Applications en Microsoft Excel. Esto se conoce como un lenguaje de programación orientado a objetos, así que si quieres saber un poco más sobre lo que hace la macro:

  • Para cada r en Selección.Filas establece un bucle, lo que significa que Excel hará un bucle en cada fila que hayas seleccionado.
  • Hojas de trabajo(ActiveSheet.Index+1) determina la posición de la hoja de trabajo a ser afectada. ActiveSheet representa la hoja de trabajo actual, mientras que Index devuelve su número de posición dentro del libro de trabajo. Si se añade 1 a este valor de índice, Excel actuará en la siguiente hoja de trabajo después de la actual.
  • Rows(r.Row) es el número de fila a ser afectada.
  • RowHeight =r.RowHeight transfiere la altura de la fila de la hoja de trabajo donde se hizo la selección a la fila afectada.
  • El siguiente instruye a Excel para que empiece el proceso de nuevo.

Si se almacenara esto dentro de una macro formal, el código podría tomar esta forma:

Para cada r en Selección. Filas

Hojas de trabajo(ActiveSheet.Index+1).Filas(r.Row).Altura de la fila=r.Altura de la fila

Siguiente

La Ventana Inmediata sólo nos permite ejecutar una sola línea de código a la vez, por lo que los dos puntos nos permiten encadenar tres líneas de código en una sola línea que puede ser ejecutada.