Avui aprendrem a comprovar fàcilment si una o diverses cel·les estan buides amb Visual Basic per a aplicacions. El contingut és rellevant per a Excel 2019/365, 2016 i versions anteriors de Microsoft Office.
Treball de preparació
Abans de començar a codificar amb VBA a Excel, haureu d'assegurar-vos que la vostra pestanya de desenvolupament estigui habilitada. Si no és així, si us plau, consulteu aquest breu tutorial .
Comproveu si l'interval de cel·les d'Excel està buit amb VBA
- A Excel, obriu el vostre entorn Visual Basic prement Alt+F11
- Inseriu el codi següent com a procediment al vostre full de treball o, alternativament, en un mòdul VBA dedicat.
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
- Aneu al vostre full de càlcul i seleccioneu un rang arbitrari de cel·les.
- Torneu a l'editor de Visual Basic i assegureu-vos que el visualitzador immediat (CTRL+G) sigui visible, ja que el mètode Debug.Print del codi mostrarà el seu resultat a aquesta finestra.
- Premeu F5 per executar el vostre codi.
- Mireu els resultats a la finestra immediata.

- S'identificaran totes les cel·les en blanc.
Possibles extensions del codi: òbviament, podeu ampliar aquest codi segons sigui necessari en cas que us interessa saltar valors en blanc o simplement no fer res en cas que les cel·les no estiguin plenes. De la mateixa manera, podeu comprovar si el rang mateix està buit, és a dir, no hi ha cap cel·la negra.
Comprovació de camps no buits
De la mateixa manera, podeu utilitzar la propietat IsEmpty per comprovar si hi ha camps que no estiguin en blanc.
If Not IsEmpty(Cell.Value) = True Then
Debug.Print ("Not Empty")
Else
Debug.Print ("Empty")
End If
Bonificació: utilitzeu el codi següent si també voleu ressaltar les cel·les buides.
Dim i As Long Dim c As Long Dim myRange As Range Dim myCell As Range Estableix myRange = Range("A1:A10") Per a cada myCell del myRange ' c = c + 1 If IsEmpty(myCell) Then myCell.Interior.Color = RGB(255, 87, 87) i = i + 1 End If Next myCell MsgBox _ "Hi ha un total de " & i & " cel·les buides de " & campament; "."