cognity

Uzupełnianie pustych komórek w Excelu

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. 

04 czerwca 2018
blog

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.

Kurs Arkusz kalkulacyjny Google - analiza danych i obliczeń, tworzenie zestawień danych oraz udostępnianie plików
początkujący
cena
od 3500 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs Arkusz kalkulacyjny Google - analiza danych i obliczeń...
cena
od  zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
...
cena
od  zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
...
cena
od  zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
...
icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments