Gå til innhold

Bruk av variable i Range, Excel VBA


Anbefalte innlegg

Hei,

 

Hvordan kan jeg bruke variable i definisjonen av en Range?

 

Vanligvis defineres en range f.eks slik:

 

Dim R1 as Range

Set R1 = Range("A1:B4")

 

Ofte vet jeg ikke utstrekningen av en range. Jeg vet kanskje at rangen starter i A1, men ikke hvor langt ned i kolonne B den skal gå. Men, jeg har en variabel som holder verdien. F.eks kan jeg bestemme utstrekningen av kolonne B slik

 

nrrows = Range("B65536").End(xlUp).Row

 

Spørsmålet er mao hvordan bruke variablen nrrows for å definere range R1? [R1 = Range("A1:B[nrrows]")]

 

Cells property tar variable, og jeg har funnet en workaround der jeg kan definere en range vha to "hjelpe"-ranger:

 

Dim Ra as range, Rb as range

nrrows = Range("B65536").End(xlUp).Row

Set Ra = Cells(1,1) 'A1 øvre venstre celle

Set Rb = Cells(nrrows, 2) 'nedre høyre celle

Set R1 = Range(Ra, Rb)

R1.select

 

Eksemplet over virker, men er tungvint i forhold til å definere range direkte. Noen som vet hvordan?

 

Takker for svar :)

Lenke til kommentar
Videoannonse
Annonse

Dette spørs jo litt hva du skal. Du kan forkorte til

 

Set R1 = Range(Cells(1, 1), Cells(Cells(65535, 2).End(xlUp).Row, 2))

 

Metoden din finner nederste celle i B, men den henger ikke nødvendigvis sammen med A1. Skal du finne "selve lista" (det som påvirkes av sortering, data, filtrering, ..) er den beste måten

 

Set R1 = Range("A1").CurrentRegion

 

Og oftest bør du spesifisere hvor:

 

Set R1 = ThisWorkbook.Sheets(1).Range("A1").CurrentRegion

 

 

HTH. Beste hilsen Harald

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...