Dim i As Integer, il_ark As Integer, arkusiki()
il_ark = 3 ReDim arkusiki(1 To il_ark)
For i = 1 To il_ark
arkusiki(i) = ThisWorkbook.Sheets("C.2_1." & i).Name Next i
Sheets(arkusiki).Copy
ActiveWorkbook.Close
napisał: Zwierzak postów: 31
umieszczony: 12 grudnia 2008 12:24
Ominąłem to w następujący sposób:
Application.DisplayAlerts = False Set wb = Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Bazy\TEST\TESTY\plik_testowy.xlsx"
For i = 1 To il_ark
ThisWorkbook.Sheets("C.2_1." & i).Copy before:=ActiveWorkbook.Worksheets("Arkusz1") Next i
ActiveWorkbook.Worksheets("Arkusz1").Delete
ActiveWorkbook.Worksheets("Arkusz2").Delete
ActiveWorkbook.Worksheets("Arkusz3").Delete
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True Set wb = Nothing Set ws = Nothing
EndSub
Myślałem, że da się zaznaczyć interesujące mnie arkusze z jednego skoroszytu i raz skopiować je do nowego skoroszytu i pewnie jakoś się da, ale co za różnica kopiować je osobno w pętli, i tak pętla musi się wykonać i tak...
napisał: Zwierzak postów: 31
umieszczony: 12 grudnia 2008 10:48
Witam,
Próbuję skopiować wybrane arkusze z jednego skoroszytu do nowo utworzonego.
Jak sprawnie poruszać się między nimi używając wyrażeń ThisWorkbook, ActiveWorkbook.
Skleciłem coś takiego, ale w pętli For wyskakuje mi błąd:
'Metoda Select z klasy Worksheet nie powiodła się'
Nie wiem dlaczego.
Może ktoś mi pomoże?
Z góry dzięki.
Poniżej fragment kodu, którego używam:
Application.DisplayAlerts = False Set wb = Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Bazy\TEST\TESTY\plik_testowy.xlsx"
For i = 1 To il_ark
ThisWorkbook.Sheets("C.2_1." & i).Select Replace:=False Next i
SelectedSheets.Copy before:=ActiveWorkbook.Worksheets("Arkusz1")
ActiveWorkbook.Worksheets("Arkusz1").Delete
ActiveWorkbook.Worksheets("Arkusz2").Delete
ActiveWorkbook.Worksheets("Arkusz3").Delete
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True Set wb = Nothing Set ws = Nothing