UsedRange - Hitta senast använda cell, kolumn eller rad
Följande kod returnerar en meddelanderuta som anger det totala antalet rader som används i ett kalkylblad. Tomma rader anses användas om data följer den tomma raden.
1 | MsgBox ActiveSheet.UsedRange.Rows.Count |
Måste du köra en loop i ett ark men vet inte var data slutar? ActiveSheet.UsedRange.Rows.Count kan hjälpa.
Lägg detta i en modul:
123456789 | Sub LastRow ()Dim LastRow som heltalLastRow = ActiveSheet.UsedRange.Rows.CountMsgBox LastRowAvsluta Sub |
123456789 | Sub LastCol ()Dim LastCol som heltalLastCol = ActiveSheet.UsedRange.Col.CountMsgBox LastColAvsluta Sub |
Hitta första tomma cellen
Med VBA kan du behöva skriva till den första tomma cellen eller efter den sista raden som används i en kolumn. Det finns ingen anledning att slinga för att hitta detta, följande kod gör det åt dig.
I det här exemplet kommer koden att skriva "FirstEmpty" i den första tomma cellen i kolumnen "d"
1234 | Public Sub AfterLast ()ActiveSheet.Range ("d" & ActiveSheet.Rows.Count) .End (xlUp) .Offset (1, 0) .Value = "FirstEmpty"Avsluta Sub |
Räkna använda kolumner i kalkylblad
Följande kod returnerar det totala antalet kolumner som används i ett kalkylblad i en meddelanderuta. Tomma kolumner anses användas om data följer den tomma kolumnen.
1 | MsgBox ActiveSheet.UsedRange.Columns.Count |
Senast använda cell - problem
När jag behöver För … Nästa … Bläddra igenom en hel kolumn använder jag vanligtvis ActiveSheet.UsedRange.Rows.Count för att hitta var jag ska sluta. Jag har alltid haft lycka till med detta tillvägagångssätt.
Jag är också medveten om att Excel ibland tror att den sista raden finns någonstans, men raden är faktiskt tom. Jag har sett detta några gånger efter att ha importerat data. Från BeyondTechnology:
Objektets arbetsblad UsedRange fungerar inte alltid eftersom det använda intervallet (eller "smutsigt område") i ett kalkylblad kan vara större än det område som faktiskt fylls med dina poster.