Avatar billede oscar3 Nybegynder
23. april 2004 - 10:35 Der er 9 kommentarer

opret nyt ark i vba

Jeg har lavat en sub der hedder
    Sheets.add
    ActiveSheet.Paste
Det vil sige at hver gang jeg kører sub'en indsætter den et nyt ark. Hvordan får jeg den til kun at indsætte et nyt ark første gang jeg kører sub'en og anden gang jeg kører den skal den bare indsætte dataerne i en ny kolonne men i samme ark???
Avatar billede bak Forsker
23. april 2004 - 11:01 #1
Lidt primitiv, men løser sikkert opgaven

Sub Macro1()
    Range("A1").Copy 'her indsætter du selv det du vil have kopieret
    On Error GoTo opretark
    Sheets("test").Activate
    On Error GoTo 0
    Range("A1").Offset(0, Application.WorksheetFunction.CountA(ActiveSheet.Range("1:1"))).Select
    ActiveSheet.Paste
    Exit Sub
   
opretark:
   
    Sheets.Add
    ActiveSheet.Name = "test"
    ActiveSheet.Paste
End Sub
Avatar billede oscar3 Nybegynder
23. april 2004 - 11:08 #2
Hvordan får man den til kun at indsætte et nyt ark en gang og ikke hver gang man kører sub'en???
Avatar billede bak Forsker
23. april 2004 - 11:57 #3
Har du prøvet at køre den ?
Hvis arket "test" ikke findes hopper den til opretark hvor et nyt ark med navnet "test" bliver oprettet

On Error GoTo opretark
    Sheets("test").Activate
Avatar billede oscar3 Nybegynder
23. april 2004 - 12:05 #4
den skriver label not defined ved on error goto opretark???
Hvad skal jeg så?
Avatar billede bak Forsker
23. april 2004 - 12:15 #5
du skal jo kopier det hele ind også
opretark:        'dette er labelen
   
    Sheets.Add
    ActiveSheet.Name = "test"
    ActiveSheet.Paste
Avatar billede oscar3 Nybegynder
23. april 2004 - 12:22 #6
jeg har kopieret det nøjagtig som du har skrevet det...??
Avatar billede oscar3 Nybegynder
23. april 2004 - 12:26 #7
Jeg har fået det til og virke
Tusind tak for hjælpen. Du har lige reddet min dag :-)
Avatar billede bak Forsker
23. april 2004 - 12:30 #8
ok ellers er eksemplet her
http://www.excel.frac.dk/opretkopi.xls
29. april 2004 - 07:57 #9
bak> her er den rigtige funktion
http://www.win-consult.com/Tips/LibrarySource.asp?App=Excel&Lib=SheetsExists

Løsningen kunne se således ud:

Public Sub OscarCopy()
    If Not SheetExists("Test") Then
        Sheets.Add
        Activesheet.Paste
    End If

    ' Kode til at kopiere
End Sub

Public Function SheetExists(ByRef SheetName As String) As Boolean
    On Error Resume Next
    SheetExists = ActiveWorkbook.Worksheets(SheetName).Index
End Function
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