vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

ThisWorkbook vs. ActiveWorkbook


otwartyotwarty rozpoczął: Zwierzak postów: 3



napisał: Trebor
postów: 1209


umieszczony:
12 grudnia 2008
16:43

  
Coś w rodzaju powinno wydolić
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


End Sub



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



<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z