TL;DR —
WrapText = Truele dice a Excel que parta el texto largo en varias líneas dentro del ancho de la columna en vez de derramarlo sobre la celda siguiente. Reforma la celda — pero solo hace la fila más alta si el alto de fila sigue en automático. Si una macro (o una celda combinada) ha clavado unRowHeightexplícito, el texto se ajusta de forma invisible y se queda recortado. Para ver de verdad el texto ajustado, haz el baile de tres pasos: fija un ancho de columna fijo, activaWrapText, y luego llama aRows.AutoFitpara que la fila crezca a la nueva forma.
' El ajuste reforma la celda; el alto de fila debe poder crecer para mostrarlo.
Columns("C").ColumnWidth = 40 ' 1) da al texto un ancho fijo contra el que ajustar
Range("C2:C100").WrapText = True ' 2) parte el texto largo en varias lineas
Range("C2:C100").EntireRow.AutoFit ' 3) deja que las filas crezcan al texto ajustado
' Vuelve a desactivarlo:
Range("C2:C100").WrapText = False
WrapText es el gemelo en código del botón Ajustar texto de la pestaña Inicio. Sin él, una
etiqueta larga simplemente se escapa hacia la derecha, oculta en cuanto la celda vecina tiene
algo. Con él, la misma etiqueta se pliega en dos o tres líneas y se queda dentro de su columna.
Eso es evidente desde el botón. Lo que el botón esconde — y lo que hace tropezar a cada macro
que intenta automatizarlo — es que el ajuste está enredado con el alto de fila, y conseguir
una salida legible significa tratar los dos juntos.
Lo que aprenderás
- El modelo mental —
WrapTextreforma la celda; no cambia el texto - La regla que más importa — el ajuste solo hace crecer la fila cuando el alto está en automático
- La secuencia de tres pasos que hace que el texto ajustado de verdad se vea (ancho, ajuste, AutoFit)
WrapTextfrente a un salto de línea duro (Chr(10)/ Alt+Enter)- Leer
WrapTextde vuelta, y por qué un rango mixto devuelveNull - Qué columnas ajustar y cuáles dejar en paz
El modelo mental: reformar la celda, no editar el texto
Activar el ajuste no toca el valor de la celda. "North America regional summary" es la misma
cadena antes y después; lo que cambia es cómo Excel la dispone. Desactivado, la cadena se
dibuja en una línea que se desborda hacia la derecha hasta que una vecina la bloquea. Activado,
Excel la pliega en líneas que encajan cada una en el ancho de la columna, apilándose hacia
abajo. Piensa en WrapText como cambiar la forma de la caja en la que vive el texto — más
estrecha y más alta — no el texto en sí.
Ese cambio de forma es toda la cuestión, y explica lo único que los principiantes pasan por alto: una caja más alta necesita una fila más alta para mostrar todas sus líneas. El ajuste y el alto de fila son dos mitades de la misma idea. No puedes cambiar uno e ignorar el otro y esperar que el resultado se vea bien.
La regla que más importa: el ajuste hace crecer la fila solo si el alto está libre
Aquí está el error detrás de casi todos los avisos de «puse WrapText pero no se ajusta nada».
WrapText = True pliega el texto por dentro, pero la fila solo se hace más alta para revelar
esas líneas extra si el alto de fila está en automático. Si algo ha fijado ya el alto,
Excel conserva ese alto y recorta las líneas ajustadas fuera de la vista:
Rows(2).RowHeight = 15 ' una macro fijo el alto antes...
Range("C2").WrapText = True ' el texto se ajusta dentro, pero la fila sigue a 15pt - recortado
Dos cosas suelen clavar el alto: una macro que fijó RowHeight a un número, y — la traicionera —
una celda combinada, porque Rows.AutoFit se niega a redimensionar una fila que contiene
una (ver AutoFit). El arreglo es dejar el alto en automático y que
AutoFit lo mida, o, si de verdad necesitas celdas combinadas, calcular y fijar tú mismo el
RowHeight. La regla para recordar: WrapText = True reforma la celda, pero algo todavía tiene
que hacer la fila lo bastante alta para mostrarlo.
La secuencia de tres pasos que de verdad funciona
Como el ajuste y el alto están ligados, conseguir una salida legible es un movimiento ordenado de tres pasos — y el orden importa:
Columns("C").ColumnWidth = 40 ' 1) un ancho FIJO - el texto necesita algo contra lo que ajustar
Range("C2:C100").WrapText = True ' 2) activa el ajuste de texto
Range("C2:C100").EntireRow.AutoFit ' 3) crece las filas a la nueva forma ajustada
El paso uno es la parte que la gente se salta. El AutoFit de fila solo puede calcular un alto
una vez que el ancho de columna está asentado — el texto tiene que saber cuán ancho se le
permite ser antes de poder decidir cuántas líneas necesita. Si haces AutoFit del ancho de
columna y del alto de fila, los dos pelean: ensanchar la columna deja que el texto encaje en
menos líneas, lo que cambia el alto, y obtienes un resultado inestable. Así que fija primero el
ancho (no le hagas AutoFit), luego ajusta, luego AutoFit del alto. Haz los tres en ese orden y
la salida es correcta cada vez.
WrapText frente a un salto de línea duro
Hay dos formas distintas de que el texto acabe en varias líneas, y confundirlas causa
desconcierto. WrapText es un ajuste blando, guiado por el ancho: Excel decide dónde partir
según el ancho de la columna, y los saltos se mueven si redimensionas la columna. Un salto de
línea duro es un carácter que pones tú mismo en la cadena — Chr(10) en VBA, o Alt+Enter a
mano — que fuerza un salto en ese punto exacto sin importar el ancho:
Range("C2").Value = "Line one" & Chr(10) & "Line two" ' un salto duro dentro del texto
Range("C2").WrapText = True ' necesario para que el salto duro SE VEA
La pega: incluso un salto duro Chr(10) solo se muestra como dos líneas cuando WrapText
está activado — de lo contrario Excel muestra un pequeño glifo de caja o lo junta todo. Así que
los dos trabajan juntos: usa Chr(10) cuando quieras un salto en un sitio concreto (un bloque
de dirección, una etiqueta sobre un valor), y confía en el WrapText a secas cuando solo
quieras que la prosa larga se pliegue para encajar.
Leer WrapText de vuelta, y el Null del rango mixto
WrapText es una propiedad por celda. Léela en una sola celda y obtienes True o False.
Léela en un rango donde algunas celdas se ajustan y otras no, y Excel no puede dar una única
respuesta, así que devuelve Null:
Debug.Print Range("C2").WrapText ' True o False
Debug.Print Range("C2:C100").WrapText ' Null si el rango es mixto
Ese Null no es un error — es Excel diciéndote que el rango es inconsistente. Si necesitas
comprobar si un rango está ajustado de forma uniforme, comprueba primero
IsNull(rng.WrapText); un resultado no nulo significa que todas las celdas coinciden. En la
práctica rara vez lo lees de vuelta — lo fijas sobre una columna entera de una vez, lo que
mantiene el rango uniforme y esquiva la pregunta por completo.
Qué columnas ajustar
El ajuste se gana su sitio en las columnas de texto — descripciones, comentarios,
direcciones, etiquetas largas — donde plegar mantiene la columna estrecha y la hoja legible.
Suele ser un error en las columnas de números: un número ajustado es más difícil de leer, no
más fácil, y los números rara vez lo necesitan. El hábito eficiente es fijar WrapText sobre
la columna entera en una sola instrucción (Columns("C").WrapText = True) en vez de recorrer
celda por celda, y luego hacer AutoFit de las filas una vez para todo el bloque. Fijarlo por
celda en un bucle es más lento y una fuente habitual del Null de rango mixto de arriba.
Decide por columna, aplica una vez, AutoFit una vez.
Cómo ayuda ExcelMaster
Ajustar texto es el ajuste que parece una línea única y luego produce una salida recortada que
nadie nota hasta que se imprime el informe — el alto de fila se clavó antes, el ancho de
columna nunca se fijó así que AutoFit midió la forma equivocada, o el salto duro Chr(10)
nunca se ve porque el ajuste se quedó desactivado.
ExcelMaster te deja
describir el resultado — «ajusta la columna de descripción y deja que las filas crezcan», «pon
la dirección en tres líneas en esta celda» — y escribe los pasos en el orden correcto: primero
un ancho de columna fijo, WrapText sobre la columna entera, luego Rows.AutoFit, con
Chr(10) donde pediste un salto duro y el ajuste activado para que se vea. Señala las celdas
combinadas que impedirán que la fila crezca. Tú conservas el libro y el código.
Preguntas frecuentes
¿Por qué no funciona mi WrapText en VBA?
El texto casi con seguridad se está ajustando — solo que no se ve, porque el alto de fila
está fijo. El alto de fila solo crece para revelar las líneas ajustadas cuando está en
automático. Deja el alto en paz y llama a Rows.AutoFit después de fijar WrapText = True, y
asegúrate de que la columna tenga primero un ancho fijo para que el texto tenga algo contra lo
que ajustar. Si la celda está combinada, el AutoFit de fila no la redimensionará en absoluto —
fija el RowHeight explícitamente.
¿Cómo ajusto texto y hago AutoFit del alto de fila en VBA?
Haz tres pasos en orden: fija un ancho de columna fijo (Columns("C").ColumnWidth = 40),
activa el ajuste (Range("C2:C100").WrapText = True), luego haz AutoFit de las filas
(Range("C2:C100").EntireRow.AutoFit). Fijar primero el ancho importa — el AutoFit de fila
solo puede medir el alto necesario una vez que el texto sabe cuán ancho se le permite ser.
¿Cómo desactivo el ajuste de texto en VBA?
Fija la propiedad a False: Range("C2:C100").WrapText = False. Si las filas se agrandaron
para encajar el texto ajustado, no encogerán solas — llama a Rows.AutoFit de nuevo después, o
fija un RowHeight explícito, para devolverlas a un alto de una sola línea.
¿Cuál es la diferencia entre WrapText y un salto de línea Chr(10)?
WrapText es un ajuste blando, guiado por el ancho — Excel elige dónde partir según el ancho
de la columna, y los saltos se mueven cuando redimensionas. Chr(10) (lo mismo que Alt+Enter)
es un salto duro que colocas dentro de la cadena en un punto exacto. Un salto duro solo se
muestra como varias líneas cuando WrapText también está activado, así que los dos suelen
usarse juntos.
¿Por qué Range.WrapText devuelve Null?
Porque WrapText es una propiedad por celda y el rango es mixto — algunas celdas se ajustan y
otras no, así que Excel no puede devolver un único True o False y da Null en su lugar.
Léela en una sola celda para una respuesta definida, o comprueba IsNull(rng.WrapText) para
ver si un rango entero es uniforme. Fijar WrapText sobre la columna entera de una vez lo
mantiene consistente.
Probado en
Probado en: Excel 365 (Windows 11), VBA 7.1 — última verificación el 10/09/2026.
Guías relacionadas: VBA AutoFit · VBA Inmovilizar paneles · VBA Ancho de columna · VBA Combinar celdas · VBA Font
