Hoy aprenderemos cómo verificar fácilmente si una o varias celdas están vacías usando Visual Basic para Aplicaciones. El contenido es relevante para Excel 2019/365, 2016 y versiones anteriores de Microsoft Office.
trabajo de preparación
Antes de comenzar a codificar con VBA en Excel, deberá asegurarse de que su pestaña de desarrollo esté habilitada. Si ese no es el caso, por favor consulte este breve tutorial .
Comprobando si el rango de celdas de Excel está vacío con VBA
- En Excel, abra su entorno de Visual Basic presionando Alt+F11
- Inserte el siguiente código como un procedimiento en su hoja de trabajo o, alternativamente, en un módulo de VBA dedicado.
Sub Check_Cell_is_empty_alt()
Dim rng As Range
Set rng = Selection
For Each Cell In rng
If IsEmpty(Cell.Value) = True Then
Debug.Print ("Empty")
Else
Debug.Print ("Not Empty")
End If
Next Cell
End Sub
- Vaya a su hoja de cálculo y seleccione un rango arbitrario de celdas.
- Vuelva al editor de Visual Basic y asegúrese de que el visor inmediato (CTRL+G) esté visible, ya que el método Debug.Print en el código mostrará su resultado en esa ventana.
- Presiona F5 para ejecutar tu código.
- Mire los resultados en la ventana inmediata.
![¿Cómo verificar si una celda o un rango de celdas múltiples está vacío con Excel VBA? ¿Cómo verificar si una celda o un rango de celdas múltiples está vacío con Excel VBA?](/resources8/images42/image-5066-0208131921874.png)
- Se identificarán todas las celdas en blanco.
Posibles extensiones al código: obviamente puede extender este código según sea necesario en caso de que esté interesado en omitir valores en blanco o simplemente no hacer nada en caso de que las celdas no estén llenas. De manera similar, puede verificar si el Rango en sí está vacío, es decir, si no contiene celdas negras.
Comprobación de campos no vacíos
De la misma manera, puede usar la propiedad IsEmpty para buscar campos que no estén en blanco.
If Not IsEmpty(Cell.Value) = True Then
Debug.Print ("Not Empty")
Else
Debug.Print ("Empty")
End If
Bonificación: utilice el siguiente código si también desea resaltar las celdas vacías.
Atenuar i mientras atenúe c mientras atenúe miRango como rango Atenúe miCélula como rango Establezca miRango = Rango("A1:A10") para cada myCell en myRange ' c = c + 1 If IsEmpty(myCell) Then myCell.Interior.Color = RGB(255, 87, 87) i = i + 1 End If Next myCell MsgBox _ "Hay un total " &erio; yo & " celda(s) vacía(s) de " &erio; c & "."