Jak usunąć puste wiersze makrem ?
Jedyne, co musimy zrobić, to napisać makro, które odszuka ostatni wypełniony wiersz w tabeli, a następnie przechodząc w dół zaczynie usuwać puste rekordy. Zróbmy krótki przykład. Zakładamy, że nasza tabela rozpoczyna się od komórki A1. Nie wiemy natomiast ile ma w sumie ma wierszy. Makro VBA powinno działać w następujący sposób:
- Sprawdza na którym wierszu kończy się nasza tabela, nawet jeśli występują przerwy pomiędzy rekordami.
- Za pomocą pętli np Do Loop, skrypt przechodzi w górę tabeli
- W pętli zainstalowany jest warunek If Then Else VBA, zliczający wartości w komórkach. Jeśli wszystkie komórki w danym wierszu są puste, rekord zostaje usunięty.
- Po usunięciu danego rekordu, skrypt przechodzi dalej w górę tabeli, aż do wiersza 1:1. Wiersz 1:1 zadeklarowany jest w warunku wejścia do pętli While sngCounter > 0
Przykład makra wykonującego w VBA usuwanie pustych wierszy powinien wyglądać następująco:
Sub UsunPusteWiersze() 'Kod usuwający puste wiersze - szukanie ostatniego wiersza' Dim rngCell As Range Set rngCell = Cells.Find(What:="*", After:=Cells(1, 1), LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:= _ False, SearchFormat:=False) 'Kod usuwający puste wiersze - usuwanie pustych wierszy sngCounter = rngCell.Row Do While sngCounter > 0 If Application.WorksheetFunction.CountA(Rows(sngCounter & ":" & sngCounter)) = 0 Then Rows(sngCounter & ":" & sngCounter).Delete Shift:=xlUp End If sngCounter = sngCounter - 1 Loop End Sub
Ten i podobne przykłady makr VBA zamieszczam w tym dziale. Jeśli chcesz się dowiedzieć więcej o programowaniu w VBA, zapraszam do skorzystania z kursu VBA online mojego autorstwa. Plik z przykładem makra Usuwanie pustych wierszy VBA wklejam poniżej:
Komentarz do “Makro – Usuwanie pustych wierszy VBA Excel”