Uzupełnianie pustych komórek w Excelu
Kategoria: Kurs VBA, Kurs Excel, Samouczek Excel

W pracy z dużą ilością danych możemy spotkać się z sytuacją, w której nie wszystkie komórki w arkuszu kalkulacyjnym są uzupełnione. Aby wypełnić komórki danymi wziętymi z komórki powyżej możemy skorzystać z kodu VBA.
Zapraszamy do zapoznania się z artykułem, który pokaże jak za pomocą VBA uzupełnić brakujące dane w komórkach.
Rys. 1. Puste komórki w kolumnie A
Uzupełnianie pustych komórek Excel
Celem zadania jest uzupełnić pustą komórkę, pobierając wartość komórki nadrzędnej.
O ile obrany przez nas cel jest względnie prosty, o tyle przetłumaczenie go na język VBA może takie nie być.
Przed rozwiązaniem naszego zadania warto uświadomić sobie czynności (nawet te oczywiste), które będziemy musieli wykonać.
Na początku musimy pobrać pierwszą komórkę. Następnym krokiem będzie sprawdzenie, czy komórka jest pusta – jeśli okaże się , że nie to będziemy musieli przejść do kolejnej komórki. Natomiast jeśli komórka jest pusta to naszym zdaniem będzie pobranie wartości komórki, która jest nad nią.
Przed pobraniem komórki należy najpierw określić długość i szerokość zaznaczenia oraz współrzędne komórki, która jest na górze po lewej stronie. Aby zrealizować to zadanie, wystarczy odwołać się do właściwości obiektu Selection, deklarując następujące zmienne:
Dim ilosc_wierszy_zaznaczenie, _
ilosc_kolumn_zaznaczenie, _
wiersz_komorki, _
kolumna_komorki As Long
Następnie zmiennym tym musimy przypisać wartości:
ilosc_wierszy_zaznaczenie = Selection.Rows.Count
ilosc_kolumn_zaznaczenie = Selection.Columns.Count
wiersz_komorki = Selection.Row
kolumna_komorki = Selection.Column
Mając odpowiednie dane można przystąpić do uzupełnienia pustych komórek. Czynność przechodzenia przez wiersze oraz kolumny można zrealizować wykorzystując pętle, natomiast przy pomocy instrukcji warunkowej If będzie można sprawdzić które komórki są puste:
For i = wiersz_komorki To ilosc_wierszy_zaznaczenie +wiersz_komorki - 1
For j = kolumna_komorki To ilosc_kolumn_zaznaczenie + kolumna_komorki - 1
If Cells(i, j) = vbNullString Then
Cells(i, j) = Cells(i - 1, j)
End If
Next
Next
Zadanie z pozoru jest dobrze rozwiązane, jednak kod zwróci komunikat błędu wtedy, gdy zaznaczona pierwsza komórka będzie pusta i będzie znajdować się w pierwszym wierszu, dlatego należy uwzględnić to w kodzie:
For i = wiersz_komorki To ilosc_wierszy_zaznaczenie + wiersz_komorki - 1
For j = kolumna_komorki To ilosc_kolumn_zaznaczenie + kolumna_komorki - 1
If Cells(i, j) = vbNullString And i > 1 Then
Cells(i, j) = Cells(i - 1, j)
End If
Next
Next
Po napisaniu kodu należy pamiętać, aby go przetestować.
Jeżeli zainteresował Cię temat uzupełniania pustych komórek Excela z pomocą kodu VBA, to zapraszamy Cię na kurs VBA w Excelu Przekrojowy. Dowiesz się tam więcej o pisaniu kodu w VBA.
uzupełnianie pustych wierszy - kod VBA
Sub uzupelnij_puste_komorki()
Dim ilosc_wierszy_zaznaczenie, ilosc_kolumn_zaznaczenie, wiersz_komorki, kolumna_komorki As Long
ilosc_wierszy_zaznaczenie = Selection.Rows.Count
ilosc_kolumn_zaznaczenie = Selection.Columns.Count
wiersz_komorki = Selection.Row
kolumna_komorki = Selection.Column
For i = wiersz_komorki To ilosc_wierszy_zaznaczenie + wiersz_komorki - 1
For j = kolumna_komorki To ilosc_kolumn_zaznaczenie + kolumna_komorki - 1
If Cells(i, j) = vbNullString And i > 1 Then
Cells(i, j) = Cells(i - 1, j)
End If
Next
Next
End Sub
Autorem artykułu jest Grzegorz Plak, trener Cognity.
Artykuły powiązane:
- Kurs VBA - procedura Sub i procedura Function
- Najważniejsze skróty klawiaturowe VBA
- VBA w Excel –Pętla For
- Kurs VBA: Instrukcja Select Case
- Kurs VBA: instrukcja warunkowa If
- Kurs VBA - Film instruktażowy cz. I (Edycja i zarządzanie kodem)
- Kurs VBA - Film instruktażowy cz. II (instrukcje warunkowe i pętle)
VBA samouczek - makro uzupełniające puste komórki w arkuszu MS Excel by Cognity is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne 4.0 Międzynarodowe License.
Cognity zaprasza Cię na praktyczne kursy i szkolenia:
Kurs VBA (Visual Basic for Applications) w Excelu Przekrojowy - szkolenie z certyfikatem
Więcej informacji znajdziesz w artykułach:
Kurs VBA - procedura Sub i procedura Function

Zainteresować Cię może również:
Jak pisać maile służbowe?
