Ostatnio trafiłem na stronie konkurencyjnej firmy szkoleniowej na wpis poświęcony zagadnieniu uzupełniania pustych komórek w arkuszu MS Excel. Autor w długim wywodzie prezentuje rozwiązanie oparte o układ dwóch zagnieżdżonych pętli i instrukcji warunkowych. Z pewnym niedowierzaniem przyjąłem to rozwiązanie- wyznaję bowiem zasadę, że jeżeli prezentować jakiś przykład to raczej w jego najlepszym wydaniu. Oto i rozwiązanie ciekawsze i bez wątpienia szybsze...
Zacznę może od podstawowej zasady- A w języku VBA- w pierwszej kolejności wykorzystujemy aplikację Excel i dostępne tam rozwiązania, dopiero potem sięgamy po kod VBA. Nasz problem rozwiążemy więc następująco:
- zaznaczamy obszar
- Menu >> Narzędzia główne >> Znajdź i zaznacz >> Przejdź do- specjalnie
- w oknie, które się wyświetli wybieramy Puste i zatwierdzamy przyciskiem OK
- w pasku formuły wstawiamy formułę '=[komórka powyżej]' i wciskamy Ctrl+Enter
A jeżeli już musimy sięgnąć po wariant z VBA to rozwiązanie problemu można osiągnąć w następujący prosty sposób:
- zaznaczamy obszar pamiętając, aby nie zaznaczyć pierwszego wiersza (bo w przypadku pustej komórki w pierwszym rzędzie i tak nie mamy skąd pobrać wartości skoro nic nad nią nie ma)
- jedyny kod VBA jaki musimy wykonać to:
1 | Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=r[-1]c" |
Jak widać nie potrzebujemy pętli, instrukcji warunkowych, wystarczy prosta i skuteczna metoda.
Bardzo wiele z tego typu rozwiązań prezentowanych jest na naszych szkoleniach z programowania VBA dla Excela. W czasie prowadzonych kursów jak zawsze stawiamy na efektywne i praktyczne podejście do tworzenia programów.
Brak komentarzy:
Prześlij komentarz