UsedRange - znajdź ostatnio używaną komórkę, kolumnę lub wiersz
Poniższy kod zwróci okno komunikatu wskazujące łączną liczbę wierszy użytych w arkuszu. Puste wiersze są uważane za używane, jeśli dane następują po pustym wierszu.
1 | MsgBox ActiveSheet.UsedRange.Rows.Count |
Czy musisz uruchomić pętlę w arkuszu, ale nie wiesz, gdzie kończą się dane? ActiveSheet.UsedRange.Rows.Count może pomóc.
Umieść to w module:
123456789 | Sub LastRow()Dim LastRow jako liczba całkowitaLastRow = ActiveSheet.UsedRange.Rows.CountOstatni wiersz MsgBoxNapis końcowy |
123456789 | Sub LastCol()Dim LastCol jako liczba całkowitaLastCol = ActiveSheet.UsedRange.Col.CountMsgBox LastColNapis końcowy |
Znajdź pierwszą pustą komórkę
Używając VBA, może być konieczne napisanie do pierwszej pustej komórki lub po ostatnim wierszu użytym w kolumnie. Nie ma potrzeby wykonywania pętli, aby to znaleźć, poniższy kod zrobi to za Ciebie.
W tym przykładzie kod napisze „FirstEmpty” w pierwszej pustej komórce w kolumnie „d”
1234 | Public Sub AfterLast()ActiveSheet.Range("d" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Value = "FirstEmpty"Napis końcowy |
Policz używane kolumny w arkuszu
Poniższy kod zwróci w oknie komunikatu całkowitą liczbę kolumn użytych w arkuszu. Puste kolumny są uważane za używane, jeśli dane następują po pustej kolumnie.
1 | MsgBox ActiveSheet.UsedRange.Columns.Count |
Ostatnio używana komórka - problemy
Kiedy muszę For… Next… Przejść przez całą kolumnę, zwykle używam ActiveSheet.UsedRange.Rows.Count, aby znaleźć miejsce zatrzymania. Zawsze miałem szczęście z takim podejściem.
Zdaję sobie również sprawę, że czasami program Excel uważa, że ostatni wiersz gdzieś istnieje, ale wiersz jest w rzeczywistości pusty. Widziałem to kilka razy po zaimportowaniu danych. Z BeyondTechnology:
Obiekt arkusza roboczego Używany zakres nie zawsze działa, ponieważ używany zakres (lub „brudny obszar”) arkusza kalkulacyjnego może być większy niż obszar faktycznie wypełniony Twoimi rekordami.