Avatar billede Sigma Pi Juniormester
11. januar 2017 - 12:56 Der er 4 kommentarer og
1 løsning

VBA: Hvorfor kan en variabel ikke sættes til Range og bruges i For-Each-Next loop?

Hej alle,

Jeg er stadig en novice i VBA og slås virkelig med at forstå begreberne og hvordan alle elementerne i VBA "spiller sammen".

Jeg har skabt en kode, der automatisk vælger et område. Og jeg vil efterfølgende lave et FOR-EACH-NEXT loop, der løber igennem dette område.

For at lave dette loop opretter jeg to variabler.

Dim rngElement As Range
Dim rngCollection As Range

Derefter prøver jeg at sætte rngCollection = Selection Der burde returnere et range object?

Når jeg så kører min FOR-EACH-NEXT, så kan den ikke finde ud af det.

For each rngElement in rngCollection
.... bla bla bla

MEEEEN....

Hvis jeg bare skriver

For Each rngElement in Selection, så virker min FOR-EACH-NEXT loop helt fint??!
11. januar 2017 - 13:11 #1
Hvor får du fejlen?
Skriver du    SET rngCollection = Selection
Avatar billede Sigma Pi Juniormester
11. januar 2017 - 14:15 #2
Urgh ... n00b ... Jeg har måske glemt det med set. Det prøver jeg lige ... ha ha
Avatar billede Sigma Pi Juniormester
11. januar 2017 - 14:20 #3
Suk! He he ... det var det. Jeg havde glemt Set!

Det er mit første reelle forsøg på at arbejde med loops, nested loops osv. så jeg havde vist lidt mistet overblikket.

Men "lesson learned" ;)

Tak!
Avatar billede Sigma Pi Juniormester
11. januar 2017 - 14:21 #4
Er det generelt en god idé at skrive SET, når man sætter sine variabler? Så glemmer man det jo ikke?
Eller er det ikke alle typer variabler, hvor man "må" gøre det?
11. januar 2017 - 14:39 #5
SET bruges om objekt variabler, så når variablerne er Range, Workbook, Worksheet og lignende, så _skal_ du bruge SET
Når variablerne er "indholdsvariabler" som String, Integer, Double, Variant, Boolean osv. så må du _ikke_ bruge SET
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester