13. december 2004 - 21:23Der er
7 kommentarer og 1 løsning
Opret ark og kopier ark via makro
Hej
Jeg vil gerne kopier et ark indenfor en projektmappe. Arket skal kopieres og navngives i forhold til indholdet i en liste fx. defineret som: Range("B1", Range("B1").End(xlDown))
Jeg håber, at én kan hjælpe med at evt. at kombinere nedenfor viste makroer, således at der ud fra ovennævnte liste oprettes tilsvarende antal ark med kopi af indholdet i oprindeligt ark1.
Jeg har fundet følgende makroer, som hver for sig fungere fint. Den første kopiere indholdet, den næste opretter og navngiver:
MAKRO1 Sub KopiArk() For x = 1 To 300 Sheets.Add Sheets("Ark1").Cells.Copy ActiveSheet.Paste Sheets("Ark1").Select Next x End Sub
MAKRO2 Sub OpretArk() Dim c As Range For Each c In Range("B1", Range("B1").End(xlDown)) Worksheets.Add(after:=Worksheets("Ark1"), Type:=xlWorksheet).Name = c.Value Next Worksheets("Ark1").Activate End Sub
Makroen må samtidig gerne udfra en liste (Range("A1", Range("A1").End(xlDown)) kopiere celleværdier ind i en bestemt celle (fx. "A1") i hvert af de nye ark. Kan man det?
Tusind tak for input. Denne makro har løst mit første problem:
Dim c As Range For Each c In Range("B1", Range("B1").End(xlDown)) Sheets("Ark1").Activate Cells.Copy Worksheets.Add(after:=Worksheets("Ark1")).Name = c.Value ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select Next Sheets("Ark1").Activate
Opgaven med at kopier celleværdier fra en liste (Range("A1", Range("A1").End(xlDown)) ud på de respektive ark - samtidig, har jeg ikke kunne få til at lykkes. Håber på lidt hjælp til dette, hvis det kan lade sig gøre?
Det er ikke flere ark der skal kopieres. Det er kun et ark, der skal kopieres ud fra en liste, som er i et andet ark.
Men den liste (2 kolonner - ved siden af hinanden) indeholder navnene på de nye ark, men ud for hvert navn er der en værdi, som skal forhåbentlig også kan indsættes i de respektive ark.
Public Sub LavArk() Dim c As Range For Each c In Range("B1", Range("B1").End(xlDown)) Sheets("Ark1").Activate Cells.Copy Worksheets.Add(after:=Worksheets("Ark1")).Name = c.Value ActiveSheet.Paste Application.CutCopyMode = False Range("A1") = c.Offset(0, 1).Value ' sætter værdien fra kolonne til højre for C, samme række, ind i A1
Hvis man vil have værdier fra 2 kolonner til højre for c i samme række overført? Hvorledes skal denne så konstrueres: Range("A1") = c.Offset(0, 1).Value Jeg har prøvet men ikke fundet ud af det.
Jeg har nu gentaget den for de celler (kolonner i samme række), jeg vil have overført. Når det går så hurtigt og smart, bliver man jo fordringsfuld.
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.