napisał: Stanislaw postów: 109
umieszczony: 24 września 2005 02:29
|
|
> operacja "next ark"wykonuje sie nastepnie dla tego nowego pliku a co mnie nie urzadza
Tak jednak nie jest, ponieważ gadhet użył "ThisWorkbook.Worksheets" co oznacza, że kod będzie wykonywany dla kolejnych arkuszy skoroszytu, z którego został uruchomiony kod.
Abyś miał co testować podsyłam poniższy kod
Sub Kopiowanie_do_arkuszy()
Dim ark As Worksheet
Dim i As Long
i = 1
Application.ScreenUpdating = False
For Each ark In ThisWorkbook.Worksheets
ark.Range("A1:E7").Copy
Workbooks("Zeszyt2.xls").Worksheets(i).Activate
Range("A1").Select
Worksheets(i).Paste
i = i + 1
Next ark
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Ilość arkuszy w skoroszycie "Zeszyt2.xls" nie może być mniejsza niż w skoroszycie
z którego jest uruchamiany kod.
--
Pozdrawiam
Stanislaw |
|
napisał: gadhet postów: 14
umieszczony: 24 września 2005 00:33
|
|
Cytat: Jeżeli mają być wybierane po kolei arkusze to coś takiego powinno wystarczyć:
For Each ark In ThisWorkbook.Worksheets
' tu następują instrukcje, które
' program ma wykonać po odnalezieniu arkusza
Next ark
ta formula by bardzo pasowala,jednak to co chce zrobic to zaznaczenie i skopiowanie jakiegos zakresu komórek do nowego pliku i arkusza,wiec operacja "next ark"wykonuje sie nastepnie dla tego nowego pliku a co mnie nie urzadza wiec dalej proze o pomoc?????? |
|
napisał: Kosmo postów: 33
umieszczony: 22 września 2005 11:35
|
|
Jeżeli mają być wybierane po kolei arkusze to coś takiego powinno wystarczyć:
For Each ark In ThisWorkbook.Worksheets
' tu następują instrukcje, które
' program ma wykonać po odnalezieniu arkusza
Next ark |
|
napisał: gadhet postów: 14
umieszczony: 22 września 2005 10:09
|
|
Cytat: Piszesz:
> Jesli mozesz to napisz mi aby losowo wybieral arkusze tylko ktore sa
A czy nie mogłoby po prostu być tak (bez wielkich kombinacji),
że makro robiłoby jakieś operacje na kolejnych arkuszach ze skoroszytu,
niezależnie od tego jak ten arkusz się nazywa?
--
Stanislaw
tak mogloby byc,ale wlasnie tego nie wiem jak zrobic jesli mozesz to napisz |
|
napisał: Kosmo postów: 33
umieszczony: 22 września 2005 07:17
|
|
Czy coś takiego Cię satysfakcjonuje?
Sub Przeglądaj_arkusze()
nazwa_pocz = 1999
nazwa_konc = 2030
Do While nazwa_pocz < nazwa_konc
For Each ark In ThisWorkbook.Worksheets
If ark.Name = CStr(nazwa_pocz) Then
' tu następują instrukcje, które
' program ma wykonać po odnalezieniu arkusza
End If
Next ark
nazwa_pocz = nazwa_pocz + 1
Loop
End Sub
Pozdrawiam |
|
napisał: Stanislaw postów: 109
umieszczony: 21 września 2005 16:40
|
|
Piszesz:
> Jesli mozesz to napisz mi aby losowo wybieral arkusze tylko ktore sa
A czy nie mogłoby po prostu być tak (bez wielkich kombinacji),
że makro robiłoby jakieś operacje na kolejnych arkuszach ze skoroszytu,
niezależnie od tego jak ten arkusz się nazywa?
--
Stanislaw |
|
napisał: gadhet postów: 14
umieszczony: 21 września 2005 13:42
|
|
Cytat: Czy chodzi Ci o coś takiego, że pojawia się okno z prośbą o podanie nazwy szukanego arkusza a następnie program sprawdza, czy taki arkusz istnieje?
mam np. plik o nazwie "book.xls" w tym pliku sa arkusze tak jak pisalem od 20000,20005,20010,20012 ttd ,arkusze nie sa w jakiejs chronologii,maja nr dowolne ale wzrastajace,wiec chodzi mi o to czy da sie jakos napisac petle ktora by szla np od 20000 i sprawdzala czy istnieje dany arkusz .Np.zaczyna sie petla od 20000 i jest arkusz wiec w tym arkuszy nastepuje kopiowanie jakisch zakresow do innego calkiem nowego pliku np "book1.xls",nastepnie po skopiowaniu,dalej by szla petla i jesli 20001 nie ma takiego arkusza wiec liczy dalej,20002-nie ma wiec dalej...,trafia na 20005 i jest arkusz wiec znowu nastepuje kopiowanie i tak dalej.nie wiem jak napisac taki skrypt zeby sprawdzal cos takiego moze ktos pomoc |
|
napisał: Kosmo postów: 33
umieszczony: 21 września 2005 12:33
|
|
Czy chodzi Ci o coś takiego, że pojawia się okno z prośbą o podanie nazwy szukanego arkusza a następnie program sprawdza, czy taki arkusz istnieje? |
|
napisał: gadhet postów: 14
umieszczony: 21 września 2005 10:23
|
|
Cytat: Odnalezienie arkusza można by zrealizować za pomocą pętli for each..next, a jak już znajdziesz arkusz to zaznaczenie obszaru powinno być proste.
Jesli mozesz to napisz mi aby losowo wybieral arkusze tylko ktore sa |
|
napisał: Kosmo postów: 33
umieszczony: 21 września 2005 09:55
|
|
Odnalezienie arkusza można by zrealizować za pomocą pętli for each..next, a jak już znajdziesz arkusz to zaznaczenie obszaru powinno być proste. |
|
napisał: gadhet postów: 14
umieszczony: 21 września 2005 09:32
|
|
mam taki problem.Czy jest taka mozliwosc napisania jakiegos makra,ktore robiloby cos takiego:
Powiedzmy, ze mam kilkadziesiat arkuszy w jednym pliku.Arkusze te maja np.numeracje taka: 20005,20010,20012,20023 i tak do pewnego momentu np.do 20234.jak widac nazwy tych arkuszy sa przypadkowe.I teraz moja prosba czy jest mozliwe napisanie petli np od 20000 do 20500,ktora sprawdzalaby czy istnieje dany arkusz i jelsi istnieje wykonywala by sie instrukcja np zaznaczenia jakiegos obszaru w tym arkuszy i kopiowanie go do nowego arkusza i tak dalej,aby sprawdzal tylko te arkusze ktore sa.Bylbym wdzieczny za pomoc.POzdrawaiam |
|
 wstecz 1 dalej  wszystkich stron: 1
|