Poniżej przyjrzymy się programowi w Excel VBA że podświetla wiersz i kolumnę aktywnej komórki (wybrana komórka). Ten program zadziwi i zaimponuje Twojemu szefowi.
Sytuacja:
Za każdym razem, gdy zmieniamy aktywną komórkę w arkuszu 1, należy wykonać makro. Możesz to osiągnąć, tworząc zdarzenie wyboru arkusza roboczego.
1. Otwórz Edytor Visual Basic.
2. Kliknij dwukrotnie Arkusz1 (Arkusz1) w Eksploratorze projektów.
3. Wybierz Arkusz roboczy z lewej listy rozwijanej. Wybierz SelectionChange z prawej listy rozwijanej.
Dodaj następujące wiersze kodu do zdarzenia Worksheet SelectionChange:
4. Deklarujemy cztery zmienne typu Integer. Jeden o nazwie rowNumberValue, jeden o nazwie columnNumberValue, jeden o nazwie i i jeden o nazwie j.
Dim rowNumberValue As Integer, columnNumberValue As Integer, i As Integer, j As Integer
5. Najpierw dodajemy linię, która zmienia kolor tła wszystkich komórek na „Brak wypełnienia”.
Komórki.Wnętrze.KolorIndeks = 0
6. Inicjujemy zmienną rowNumberValue numerem wiersza aktywnej komórki, a zmienną columnNumberValue numerem kolumny aktywnej komórki.
rowNumberValue = AktywnaKomórka.row
LiczbaKolumnWartość = AktywnaKomórka.kolumna
7. Podświetlamy kolumnę na niebiesko. To znaczy: wszystkie komórki o numerze wiersza mniejszym lub równym rowNumberValue i numerze kolumny równym columnNumberValue
For i = 1 To rowNumberValue
Cells(i, columnNumberValue).Interior.ColorIndex = 37
Dalej ja
Wyjaśnienie: w tym przykładzie (patrz rysunek powyżej), rowNumberValue równa się 12, a columnNumberValue równa się 8. Linie kodu między For i Next zostaną wykonane dwanaście razy. Dla i = 1, Excel VBA koloruje komórkę na przecięciu wiersza 1 i kolumny 8. Dla i = 2, Excel VBA koloruje komórkę na przecięciu wiersza 2 i kolumny 8 itd.
Uwaga: zamiast numeru ColorIndex 37 (niebieski) możesz użyć dowolnego numeru ColorIndex.
8. W podobny sposób podświetlamy wiersz na niebiesko. To znaczy: wszystkie komórki z numerem wiersza równym rowNumberValue i numerem kolumny mniejszym lub równym columnNumberValue.
Dla j = 1 To columnNumberValue
Cells(rowNumberValue, j).Interior.ColorIndex = 37
Następny j
9. Teraz czas na przetestowanie programu. Pobierz plik Excel i zobacz, jak wiersz i kolumna aktywnej komórki są podświetlane za każdym razem, gdy zmieniasz aktywną komórkę.