UsedRange - Find sidst brugte celle, kolonne eller række
Følgende kode returnerer en meddelelsesboks, der angiver det samlede antal rækker, der bruges i et regneark. Tomme rækker betragtes som anvendte, hvis data følger den tomme række.
1 | MsgBox ActiveSheet.UsedRange.Rows.Count |
Skal du køre en loop ned ad et ark, men ved ikke, hvor dataene stopper? ActiveSheet.UsedRange.Rows.Count kan hjælpe.
Sæt dette i et modul:
123456789 | Sub LastRow ()Dim LastRow som heltalLastRow = ActiveSheet.UsedRange.Rows.CountMsgBox LastRowAfslut Sub |
123456789 | Sub LastCol ()Dim LastCol som heltalLastCol = ActiveSheet.UsedRange.Col.CountMsgBox LastColAfslut Sub |
Find den første tomme celle
Ved hjælp af VBA skal du muligvis skrive til den første tomme celle eller efter den sidste række, der blev brugt i en kolonne. Der er ingen grund til at sløjfe for at finde dette, følgende kode gør det for dig.
I dette eksempel vil koden skrive "FirstEmpty" i den første tomme celle i kolonne "d"
1234 | Offentlig sub efter sidste ()ActiveSheet.Range ("d" & ActiveSheet.Rows.Count) .End (xlUp) .Offset (1, 0) .Value = "FirstEmpty"Afslut Sub |
Tæl brugte kolonner i regneark
Følgende kode returnerer det samlede antal kolonner, der bruges i et regneark, i en meddelelsesboks. Tomme kolonner betragtes som anvendt, hvis data følger den tomme kolonne.
1 | MsgBox ActiveSheet.UsedRange.Columns.Count |
Sidst brugte celle - Problemer
Når jeg skal For … Næste … Loop gennem en hel kolonne, jeg bruger normalt ActiveSheet.UsedRange.Rows.Count for at finde, hvor jeg skal stoppe. Jeg har altid haft held med denne fremgangsmåde.
Jeg er også opmærksom på, at Excel lejlighedsvis tror, at den sidste række findes et sted, men rækken er faktisk tom. Jeg har set dette et par gange efter import af data. Fra BeyondTechnology:
Objektets regneark UsedRange fungerer ikke altid, fordi det anvendte område (eller "snavsede område") i et regneark kan være større end det område, der faktisk er fyldt med dine poster.