Note: The other languages of the website are Google-translated. Back to English

¿Cómo ocultar automáticamente filas si hay celdas en blanco en una columna?

Si tiene un rango de datos que ocupan algunas celdas en blanco en una columna, y ahora, desea ocultar las filas que contienen las celdas en blanco en esa columna automáticamente. ¿Hay alguna buena forma de resolver este trabajo en Excel de forma rápida y sencilla?

Ocultar automáticamente filas si hay celdas en blanco en una columna con código VBA


flecha azul burbuja derecha Ocultar automáticamente filas si hay celdas en blanco en una columna con código VBA

El siguiente código puede ayudarlo a ocultar todas las filas si hay celdas en blanco en una columna específica a la vez, y si elimina el contenido de la celda en esa columna, las filas también se ocultarán automáticamente. Haz lo siguiente:

1. Haga clic con el botón derecho en la pestaña de la hoja en la que desea ocultar automáticamente las filas si hay celdas en blanco en una columna, y luego elija Ver código en el menú contextual, en el emergente Microsoft Visual Basic para aplicaciones ventana, copie y pegue el siguiente código en el espacio en blanco Módulo:

Código de VBA: ocultar filas automáticamente si hay celdas en blanco en una columna:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A1:A20")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
        
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

doc ocultar automáticamente filas 1

Nota:: En el código anterior, A1: A20 es la lista de datos que contiene las celdas en blanco que desea ocultar automáticamente.

2. Luego regrese a la hoja de trabajo, y ahora, cuando haga doble clic en cualquier celda y presione Enviar clave, las filas que contienen celdas en blanco en la columna A se han ocultado a la vez, y si borra cualquier contenido de celda en las celdas especificadas de la columna A, las filas se ocultarán automáticamente.

doc ocultar automáticamente filas 2

 


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior

 

Comentarios (32)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Hola, estoy usando excel 2016 y no funciona. Recibo un mensaje de error de sintaxis. ¿puede usted ayudar?
Este comentario fue minimizado por el moderador en el sitio
Hola, hormiga,

El código anterior funciona bien en mi Excel 2016, ¿ha cambiado la referencia de celda en el código según sus necesidades?
Este comentario fue minimizado por el moderador en el sitio
Recibo un error de tiempo de ejecución ´13´:



No coinciden los tipos



Alguien que pueda ayudar???
Este comentario fue minimizado por el moderador en el sitio
¿Puedo evitar que esta macro se ejecute automáticamente después de presionar enter? ¿Puedo adjuntarlo a un botón para ocultar solo las celdas cuando hago clic?
Este comentario fue minimizado por el moderador en el sitio
¿Alguien alguna vez se dio cuenta de esto? yo tambien quisiera saber.
Este comentario fue minimizado por el moderador en el sitio
¿alguien ha dado con la respuesta todavía?
Este comentario fue minimizado por el moderador en el sitio
la misma pregunta aquí
Este comentario fue minimizado por el moderador en el sitio
Hola chicos,
Para ocultar las filas que una columna específica contiene celdas en blanco usando un botón, haga lo siguiente:
Primero, debe insertar un botón de comando desde la pestaña Desarrollador.
Y luego aplique el siguiente código VBA para el botón de comando (Nota: cambie la referencia de celda a1: a20 por la suya)

Private Sub CommandButton1_Click ()
Rango de atenuación como rango, x como rango
Establecer rng = Rango ("a1: a20")
Application.ScreenUpdating = False
Para cada x en rng
Si Len(x.Text) = 0 Entonces
x.EntireRow.Hidden = Verdadero
otro
x.EntireRow.Hidden = Falso
Si terminar
Siguiente x
Application.ScreenUpdating = True
End Sub

¡Pruébalo, espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
cómo ocultar filas automáticamente si hay celdas en blanco en 2 columnas diferentes con código VBA
Este comentario fue minimizado por el moderador en el sitio
Hola Salpe,
Para ocultar las filas si las celdas están en blanco en 2 columnas diferentes automáticamente, aplique el siguiente código:

Sub hoja de trabajo privada_Cambio (según el rango de destino ByVal)
Dim xRg, xCell como rango
Dim xRgs, xRgArea como rango
Establecer xRgs = Rango ("A1: A22, D1: D22")
Application.ScreenUpdating = False
En caso de error Ir a Ctn
Para cada xRgArea en xRgs.Areas
Depurar.Imprimir xRgArea.Dirección
Para cada xRg en xRgArea.Columns
Para cada xCell en xRg.Rows
Si xCell.Value = "" Entonces
xCell.EntireRow.Hidden = Verdadero
Ir a CTN
ElseIf Not xCell.EntireRow.Hidden Entonces
xCell.EntireRow.Hidden = Falso
Si terminar
caja:
Siguiente
Siguiente
Siguiente
Application.ScreenUpdating = True
End Sub

Puede cambiar las referencias de celda según sus necesidades.
¡Por favor pruebalo!
Este comentario fue minimizado por el moderador en el sitio
بسم الله وجزاكم الله خيرا هذا الكود رائع ولكن حين قمت بتطبيق كود حذف الصف يبطأ الشير Xost.
Este comentario fue minimizado por el moderador en el sitio
Quiero saber si el código funcionará si la celda está en blanco como resultado de Formula ?
Este comentario fue minimizado por el moderador en el sitio
Hola ACHINTA,
El código VBA anterior también se aplica a las celdas en blanco como resultado de la fórmula, ¡puedes probarlo, gracias!
Este comentario fue minimizado por el moderador en el sitio
La fórmula funciona para ocultar celdas en función de la información, al principio, pero no vuelve a revelar las celdas si cambia su contenido. Quiero que revele cualquier celda nueva que se haya llenado con información (lo que ocurre a través de una búsqueda de celda). ¿Cómo hago esto?
Este comentario fue minimizado por el moderador en el sitio
Bom dia, esta é minha necessidade também.

Preciso ocultar e quando a célula for preenchida (uso uma fórmula que preenche a mesma se houver valor em outra planilha) seja reexibida a linha novamente de forma automática.

Agradecida.
Este comentario fue minimizado por el moderador en el sitio
Lo que quiero es algo como esto para trabajar en la hoja activa:

Si las celdas D2:D55 = ""
Entonces Hide.EntireRow

Si las celdas D2:D55 = "tiene algún valor"
Entonces Mostrar.EntireRow

¿Cómo?
Este comentario fue minimizado por el moderador en el sitio
Hola, Kacha, solo necesita cambiar la referencia de celda en el código a su propio rango de celdas como se muestra a continuación: Hoja de trabajo secundaria privada_Change (ByVal Target As Range)
'Actualizar por Extendoffice
Dim xRg como rango
Application.ScreenUpdating = False
Para cada xRg en el rango ("D2: D55")
Si xRg.Value = "" Entonces
xRg.EntireRow.Hidden = Verdadero

otro
xRg.EntireRow.Hidden = Falso
Si terminar
Siguiente xRg
Application.ScreenUpdating = True
End SubDespués de insertar el código, recuerde hacer doble clic en cualquier celda y presione la tecla Intro para que el código surta efecto.
Este comentario fue minimizado por el moderador en el sitio
¿Cuál es la forma más sencilla de deshacer la ocultación automática?
Este comentario fue minimizado por el moderador en el sitio
Hola, mình có dùng 2 código trong 1 archivo excel (1 código là của bạn) với mục đích in ra những bản riêng biệt và không bị thừa dòng trống. Khi minh ấn in từng bản thì ok nhưng nếu in 1 loạt thì code Hide không có tác dụng, bạn xem giúp mình với nhé, mình cảm ơn!

Sub IMPRIMIR_IMPRIMIR()
Rango de atenuación como rango, x como rango
Establecer rng = Rango ("a16: a23")
Application.ScreenUpdating = False
Para cada x en rng
Si Len(x.Text) = 0 Entonces
x.EntireRow.Hidden = Verdadero
otro
x.EntireRow.Hidden = Falso
Si terminar
Siguiente x
Application.ScreenUpdating = True


Dim p1, p2, i&
p1 = Hoja1.Rango("O1").Valor
p2 = Hoja1.Rango("O2").Valor
Si IsNumeric(p1) = False o IsNumeric(p2) = False Entonces
tb = MsgBox("Entonces codifique phai la so.", , "Thông báo")
Exit Sub
Si terminar
Si p1 > p2 Entonces
tb = MsgBox("Así que código sau phai >= así que código truoc.", , "Thông báo")
Exit Sub
Si terminar
Si p1 < 1 O p2 < 1 Entonces
tb = MsgBox("Así que código phai >= 1.", , "Thông báo")
Exit Sub
Si terminar
Si p1 <= p2 Entonces
Para i = p1 Para p2
Hoja1.Rango("M2").Valor = i
Hoja1.Imprimir
Siguiente
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
Hola,Necesito crear una macro que me oculte una columna.Sería así: en la primera fila poner un 1 a las columnas que no quiero ocultar y no poner ningún valor a las columnas que quiero ocultar. Estoy haciendo el siguiente código, pero no se en que falla:
Sub OcultarColumnaSin1()
Application.ScreenUpdating = False
Para cada rango en columnas
Si rango = "" Entonces
rango.EntireColumn.Hidden = Verdadero
otro
rango.EntireColumn.Hidden = False
Si terminar
Rango siguiente
Application.ScreenUpdating = True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Esto funciona muy bien para mí. Oculta las filas y las abre cuando mis valores cambian según las fórmulas. La pregunta que tengo es que mi hoja tiene 104 filas. Se agita un poco cada vez que hago clic en una celda. ¿Alguna forma de acelerar la transición cuando está activado? ¿O es mi computadora? ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Me gustaría ocultar filas automáticamente si la columna E está en blanco o 0
Este comentario fue minimizado por el moderador en el sitio
Si el valor en la columna E está en blanco o 0, me gustaría que la fila se oculte automáticamente. Si el valor en E cambia a algo que no sea en blanco o 0, me gustaría que se muestre. El informe tiene 1500 filas
Este comentario fue minimizado por el moderador en el sitio
Hola cathy,
Para ocultar las filas automáticamente en función de celdas en blanco o valores 0, utilice el siguiente código vba:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("E1:E1500")
            If (xRg.Value = "") Or (xRg.Value = "0") Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub


Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
¿Cómo ocultar la fila que contiene la casilla de verificación?
Este comentario fue minimizado por el moderador en el sitio
Hola Sweta

Para ocultar filas con casillas de verificación, el siguiente artículo puede hacerle un favor:
¿Cómo ocultar la casilla de verificación cuando la fila está oculta en Excel?

Intente, si todavía tiene alguna otra pregunta, comente aquí.
Este comentario fue minimizado por el moderador en el sitio
Al ejecutar el código en Office 2013/2019/2021, funciona pero lleva demasiado tiempo completarlo (solo 95 filas para ocultar).
¿Cómo puedes acelerar esto?
¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola Asaf,
El código funciona bien en mi archivo de Excel, ¿podría cargar su libro de trabajo adjunto aquí si no le importa? Para que podamos ayudar a comprobar el problema.

¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak file menjadi PDF tapi tampilan di excelnya tetap
Este comentario fue minimizado por el moderador en el sitio
Hola Nurjanah
Para resolver su problema, primero, debe ocultar las filas en blanco y luego imprimir los datos, después de imprimir los datos, necesita mostrar las filas en blanco nuevamente. Por favor haz esto:
1. Aplique esta fórmula: = COUNTA (A2: E2) junto a sus datos, vea la captura de pantalla:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. Luego, filtre la nueva columna auxiliar En blanco, oculte todas las filas de valor 0, vea la captura de pantalla:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3. Y luego, debe ocultar la nueva columna en blanco e imprimir los datos, después de imprimir la hoja de trabajo, cancele el filtro para mostrar las filas en blanco según lo necesite.
Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
Hola, tengo problemas con la "automatización" de la macro. Estoy buscando una forma de que el código funcione como un proceso automatizado sin la necesidad de ejecutar "manualmente" la macro. He estado usando mi propia variante de su código debido a que encontré problemas para usar su código. Esta es mi variante:

Sub HideRows()
Dim xRg como rango
Application.ScreenUpdating = False
Para cada xRg en el rango ("A3:A800")
Si (xRg.Valor = "") Entonces
xRg.EntireRow.Hidden = Verdadero
otro
xRg.EntireRow.Hidden = Falso
Si terminar
Siguiente xRg
Application.ScreenUpdating = True
End Sub

Estoy tratando de crear una hoja de cálculo que requiere valores siempre cambiantes, por lo tanto, requeriría un proceso "automatizado" genuino. Soy relativamente nuevo en VBA y si su código ya cumple con mis requisitos, ¿le importaría ayudarme/enseñarme a aplicarlo en VBA? Gracias.
Este comentario fue minimizado por el moderador en el sitio
hola, vian
De hecho, el código de nuestro artículo se puede ejecutar automáticamente.
Debe copiar y pegar el código en el módulo de código de la hoja de trabajo actual, luego regresar a la hoja de trabajo, hacer doble clic en cualquier celda y presionar el botón Enviar clave, la fila que contiene la celda en blanco se ocultará directamente.

Siga el método de este artículo paso a paso, ¡espero que pueda ayudarlo!
¡Gracias!
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL