10. november 2007 - 16:57Der er
19 kommentarer og 1 løsning
Kopier to kolonner fra en worksheet over i en ny workbook.
Jeg har en udfordring i forbindelse med en woorkbook kaldet a, hvor jeg skal have kopieret indholdet fra kolonne e og kolonne f over i en ny workbook kaldet b. Der står noget i de andre kolonnner som ikke skal med over. Der er flere worksheets i workbooken. i alle tilfælde er det indholdet af kolonne e og f, der skal med over. Af den årsag vil jeg gerne have kopieret de enkelte worksheets én ad gangen. Hvem kan hjælpe?
workbook b eksistere ikke, men skal oprettes som en del af makroen. navnene på fanebladene på det enkelte worksheet skal med over i det nye ark. Navnet på den nye workbook skal dannes ud fra månedsnavnet + 1. Hvis workbook a hedder november, så skal den nye hedde december.
Jeg har ikke så stor erfaring her på eksperten, så jeg har nok ikke udtryk mig klart nok i spørgsmålet, da jeg mente at det var naturligt at navnet på fanebladene kom med over.
'gemmer først aktuel projektmappe ThisWorkbook.Save
'find næste måneds navn n = Left(ThisWorkbook.Name, 3) For t = 1 To 12 If n Like Format(DateSerial(2007, t, 1), "mmm") Then navn = Format(DateSerial(2007, t + 1, 1), "mmmm") End If Next
'sletter alle kolonner på nær E og F For Each sh In ActiveWorkbook.Sheets sh.Range("A1:D65535").Clear sh.Range("G1:IV65535").Clear Next
'gemmer med nyt navn ActiveWorkbook.SaveAs navn & ".xls"
Første del med at gemme og generee det nye navn virker ok, men sidste del virker ikke. Jeg får en fejl i linien sh.Range("A1:D65535").Clear. Det ser ud som om at det er sh der giver problemet. Hvad kan være årsagen?
ja det gør den. Jeg har lavet et ark med 3 sheets og så blot indsat noget tekst i de felter som jeg ønsker slettet. Koden stoppen ved linien: sh.Range("A1:D65535").Clear
Jeg har lige prøvet at med et helt nyt testark, og her virker den sjovt nok. Det tager blot lang tid, med at gennemføre sletningen. Vil det være hurtigere hvis man testede på hvor mange rækker der er på de enkelte ark, og derpå slette? Når man kan slå beskyttelsen til og fra, kan man så på tilsvarende måde slå delingen til og fra?
Vedr. deling ved jeg ikke Vedr. antal rækker så jo, er alle kolonner fyldt lige langt ned eller er der en kolonne der altid er flest udfyldte rækker i ?
Nej det er de ikke. Der er tale om et skema med rammer omkring. Hvis der tælles på kononne E og F, så vil det hele komme med. Der er ikke nogle kolonner der har flere rækker end de to førnævnte.
'gemmer først aktuel projektmappe ThisWorkbook.Save
'find næste måneds navn n = Left(ThisWorkbook.Name, 3) For t = 1 To 12 If n Like Format(DateSerial(2007, t, 1), "mmm") Then navn = Format(DateSerial(2007, t + 1, 1), "mmmm") End If Next
'sletter alle kolonner på nær E og F For Each sh In ActiveWorkbook.Sheets rkE = sh.Cells(65500, "E").End(xlUp).Row rkF = sh.Cells(65500, "F").End(xlUp).Row If rkE < rkF Then rkE = rkF
sh.Range("A1:D" & rkE).Clear sh.Range("G1:IV" & rkE).Clear Next
'gemmer med nyt navn ActiveWorkbook.SaveAs navn & ".xls"
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.