Avatar billede jath08ac Forsker
12. januar 2018 - 07:53 Der er 2 kommentarer og
1 løsning

Marker flere sheets ud fra navn via VBA kode

Hej,

Jeg har en masse faner i min Excel fil som ligger lidt tilfældigt.

Er det muligt at lave en VBA kode, som markerer (select) de faner som starter med navnet Anvendt og Ledelse?

Tænker at det evt. skal være en for each, men kan ikke lige lure hvordan den skal se ud.

Håber at der er en der vil hjælpe.
Avatar billede Dan Elgaard Ekspert
12. januar 2018 - 08:10 #1
Sådan lige ud af hovedet, må det blive:

Dim WS As Worksheet
For Each WS in ActiveWorkbook.Worksheets
    If Left$(WS.Name, 7) = "Anvendt" Or _
      Left$(WS.Name, 7) = "Ledelse" Then WS.Select False
Next
Avatar billede finb Ekspert
12. januar 2018 - 09:24 #2
Hvad udfører $ i Left$ ?
Tak finb
Avatar billede Dan Elgaard Ekspert
12. januar 2018 - 12:26 #3
$ tegnet fortæller VBA, at, hvad der kommer i funktionen allerede er valideret som en streng - VBA vil derfor ikke bruge tid på dette, men blot antage, at indholdet/resultatet er en streng...
...og, dermed bliver koden en lille smule hurtigere :-)

Alternativt vil VBA starte med at antage 'Variant', og arbejde med indholdet i funktionen som 'Variant', hvilket både kræver lidt mere hukommelse, og tage nogle få millisekunder længere tid.

Indrømmet: Ved små koder er det nok lidt 'overkill', men jeg har bare vænnet mig til at gøre det, da jeg altid stoler på mine egne variabel deklarationer.

Koden bliver ganske enkelt mere 'robust'.
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

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