Avatar billede region Nybegynder
17. december 2001 - 13:17 Der er 5 kommentarer og
1 løsning

VBA i Excel HASTER...!!!!

Jeg kører i excel et lille script. :

Sub Macro1()
    Sheets(\"Sheet1\").Select
    Sheets(\"Sheet1\").Copy After:=Sheets(3)
    Sheets(\"Sheet1 (2)\").Select
    Sheets(\"Sheet1 (2)\").Name = \"UK\"
End Sub

Det jeg nu ønsker er at såfremt arket UK findes i forvejen skal macroen ikke gøre noget. Jeg kender ikke VBA i excel særlig godt. Jeg havde tænkt på noget ala\' :

if UK.exist = true then
goto end
else
    Sheets(\"Sheet1\").Select
    Sheets(\"Sheet1\").Copy After:=Sheets(3)
    Sheets(\"Sheet1 (2)\").Select
    Sheets(\"Sheet1 (2)\").Name = \"UK\"
end if
End Sub


men som sagt jeg kender ikke VBA i excel så godt...
Avatar billede bak Forsker
17. december 2001 - 13:49 #1
For i = 1 To Sheets.Count
    If Sheets(i).Name = \"UK\" Then Fundet = true
Next i
if fundet = true then exit sub
Avatar billede bak Forsker
17. december 2001 - 13:58 #2
Faktisk kan du gøre den endnu kortere
For i = 1 To Sheets.Count
    If Sheets(i).Name = \"UK\" Then Exit Sub
Next i
17. december 2001 - 13:59 #3
Sammensat kunne det se således ud:

Sub Macro1()
Dim i As Integer, Fundet As Boolean
    For i = 1 To Sheets.Count
        If Sheets(i).Name = \"UK\" Then Fundet = True
    Next i
    If Fundet = False Then
        Sheets(\"Sheets1\").Copy After:=Sheets(3)
        Sheets(\"Sheet1 (2)\").Name = \"UK\"
    Else
        Exit Sub
    End if
End Sub
Avatar billede region Nybegynder
17. december 2001 - 14:05 #4
eller endnu kortere...

Sub Macro1()
For i = 1 To Sheets.Count
    If Sheets(i).Name = \"UK\" Then Exit Sub
Next i
Sheets(\"Sheet1\").Select
Sheets(\"Sheet1\").Copy After:=Sheets(3)
Sheets(\"Sheet1 (2)\").Select
Sheets(\"Sheet1 (2)\").Name = \"UK\"

End Sub
17. december 2001 - 14:12 #5
endnu kortere....
Sub Macro1()
For i = 1 To Sheets.Count
    If Sheets(i).Name = \"UK\" Then Exit Sub
Next i
Sheets(\"Sheet1\").Copy After:=Sheets(3)
Sheets(\"Sheet1 (2)\").Name = \"UK\"
End Sub
17. december 2001 - 14:14 #6
Uigennemskuelig...!
Sub Macro1()
For i = 1 To Sheets.Count: If Sheets(i).Name = \"UK\" Then Exit Sub: Next i
Sheets(\"Sheet1\").Copy After:=Sheets(3): Sheets(\"Sheet1 (2)\").Name = \"UK\"
End Sub
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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