Avatar billede Simonjulandreasen Nybegynder
15. marts 2012 - 14:47 Der er 9 kommentarer og
1 løsning

VBA - After.sheet

Hvor skal man indsætte koden: after hvis man vil have sine ark til at blive placret bag sin andre ark når man operetter dem med denne kode:

Function CreateWorkSheet(sName As String) As Worksheet
' Funktion der opretter et regneark.
' Burde tage højde for om regnearket findes i forvejen.
    Dim objWorkSheet As Worksheet

    '  man kan bestemme hvor arket skal være via Before/After men hvordan ??
    Set objWorkSheet = Application.ThisWorkbook.Worksheets.Add
   
    objWorkSheet.Name = sName
       
    ' Returner arket
    Set CreateWorkSheet = objWorkSheet

End Function

Håber en kvik sjæl vil hjælpe :-)
Avatar billede Thorp Praktikant
15. marts 2012 - 14:58 #1
Hvis du vil have det til sidst:

After:=Sheets(Sheets.Count)

Hvis du vil have det først:

Before:= Sheets(1)
Avatar billede Simonjulandreasen Nybegynder
15. marts 2012 - 15:02 #2
Det er jeg godt klar over :-)

Men kan ikke få det placert rigtig i  det stump kode jeg har? Så hvor i koden skal det indsættes ?
Avatar billede Thorp Praktikant
15. marts 2012 - 15:09 #3
Prøv at indsætte det her:


Application.ThisWorkbook.Worksheets.Add After:=Sheets(Sheets.Count)
Avatar billede Simonjulandreasen Nybegynder
15. marts 2012 - 16:46 #4
Fungere desværre ikke

tror det skal indsættes som en del af denne linje ?

  Set objWorkSheet = Application.ThisWorkbook.Worksheets.Add
Avatar billede KurtOA Praktikant
15. marts 2012 - 21:16 #5
Så prøv at kombinere dit eget med Thorps...

Application.ThisWorkbook.Worksheets.Add _
after:=Sheets(Sheets.Count)

mvh Kurt
Avatar billede Thorp Praktikant
16. marts 2012 - 07:36 #6
Ok - my bad, jeg var doven og skrev ikke det som stod før lighedstegnet - troede at du ville fange dette.

Men her får du så hele linjen, hvis du vil have det nye ark ind som det sidste i din mappe:

Set objWorkSheet = Application.ThisWorkbook.Worksheets.Add 
Application.ThisWorkbook.Worksheets.Add After:=Sheets(Sheets.Count)

Og hvis du vil have det nye ark ind som det første:

Set objWorkSheet = Application.ThisWorkbook.Worksheets.Add 
Application.ThisWorkbook.Worksheets.Add After:=Sheets(1)
Avatar billede Thorp Praktikant
16. marts 2012 - 07:38 #7
Med  hensyn til ovenstående så er der ikke tale om to linjer, men én kodelinje, Hvis du vil skrive det i to linjer for overskuelighedens skyld - så skal der stå følgende:

Set objWorkSheet = Application.ThisWorkbook.Worksheets.Add _
Application.ThisWorkbook.Worksheets.Add After:=Sheets(Sheets.Count)
Avatar billede Thorp Praktikant
16. marts 2012 - 07:40 #8
Med hensyn til ovenstående så kan det være svært at se, men der er et mellemrum mellem Add og _ (Underscore)
Avatar billede Simonjulandreasen Nybegynder
19. marts 2012 - 13:16 #9
Intet af det fungere men du får dine point
Avatar billede Thorp Praktikant
19. marts 2012 - 13:58 #10
Hej,

jeg havde overset en lille ting i din kode - det beklager jeg.

Da du sætter objWorkSheet lig med det nye ark, så skal koden se således ud:

Set objWorkSheet = Application.ThisWorkbook.Worksheets.Add(After:=Sheets(Sheets.Count))

Altså der skal parantes efter Add og omkring After:= udtrykket
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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