VBA Znajdź wartość w kolumnie

W tym artykule zademonstrujemy, jak używać VBA do znajdowania wartości w kolumnie.

Możemy użyć Range.Find, aby przejść przez kolumnę wartości w VBA, aby znaleźć wszystkie komórki w zakresie, które pasują do określonych kryteriów.

Pętla przez kolumnę z Range.Find i Range.FindNext

W poniższym przykładzie przeglądamy dane w kolumnie i szukamy słowa „Zaległe”. Gdy znajdzie słowo, zaznaczy komórkę, zmieniając kolor tekstu komórki na czerwony. Następnie użyjemy metody Range.FindNext, aby przejść do następnej komórki i kontynuować wyszukiwanie słowa, kontynuując pętlę do końca określonego zakresu komórek.

1234567891011121314151617 Podrzędna pętla wyszukiwania()Dim strFirstAddress As StringDim rngFindValue As RangeDim rngSearch As RangeDim rngZnajdź jako zakresUstaw rngFind = ActiveSheet.Range("F1:F17")Ustaw rngSearch = rngFind.Cells(rngFind.Cells.Count)Ustaw rngFindValue = rngFind.Find("Zaległy", rngSearch, xlValues)Jeśli nie rngFindValue to nic, tostrPierwszyAdres = rngZnajdźWartość.AdresrngFindValue.Font.Color = vbRedRobićUstaw rngFindValue = rngFind.FindNext(rngFindValue)rngFindValue.Font.Color = vbRedPętla do rngFindValue.Address = strFirstAddressZakończ, jeśliNapis końcowy

Po uruchomieniu kod zapisuje adres pierwszej komórki, w której znajdują się dane w zmiennej strPierwszy adres i zmienia kolor tekstu na czerwony. Następnie tworzona jest pętla w celu znalezienia następnej komórki zawierającej wymagane dane. Po znalezieniu wartości kolor tekstu zmienia się na czerwony, a następnie adres komórki, w której znajduje się wartość, jest porównywany z ciągiem strPierwszy adres. Jeśli nie są takie same, pętla jest kontynuowana, odnajdując każde wystąpienie słowa „Zaległe”. Gdy pętla osiągnie koniec zakresu komórek (tj. F17), rozpocznie się od początku zakresu (F1) i będzie kontynuowana. Gdy osiągnie adres komórki F3 po raz drugi, ponieważ jest taki sam jak przechowywana zmienna strPierwszy adrespętla się zatrzyma.

wave wave wave wave wave