@KwasneJablko: banalne - musisz najpierw dać linię Worksheets(i).Activate i potem linia z paste special Możesz działać tylko na aktywnym sheecie, to Cię limituje.
@KwasneJablko: czyli to jest kwestia adresowania nazwy samej w sobie. Excel adresuje nazwę i numer. Ja bym: 1. sprawdził wszystkie skoroszyty, może poprzednio użyte makro wprowadza zmiany w pierwszych 12 a nie we wszystkich, wtedy da się to uratować 2. Spróbował drugiej metody adresowania skoroszytu Sheets(CStr(i)) pod tym samym kątem. Któreś z tych 2 powinno zadziałać albo dla skoroszytów 1-12 albo dla 12 pierwszych skoroszytów.
@KwasneJablko: odwoływałeś się do numeru arkusza nie do jego nazwy. Jak masz zdeklarowany arkusz jako zmienną to możesz podejrzeć jego parametry w trakcie działania programu.
@KwasneJablko Worksheets(""" & i & """). Ot i cała filozofia ;) Worksheets(5) - to piąty arkusz, Worksheets("5") - to arkusz o nazwie 5, dlatego musisz wstawić i w cudzysłów ;)
Żeby nie wywalał błąd to wyłącz obsługę błędów ;) On error resume next Set sh = Sheets(CStr(i)) sh.Range("S46:U52").PasteSpecial On error goto 0
@KwasneJablko: W ten sposób nadpisałbyś poprzednie Range, więc rng byłoby tylko takie jak w ostatniej linijce, czyli ws. range("S246:U252") Zadeklaruj po prostu kilka innych Range'ów Dim rng1 As Range Dim rng2
Walcze aby wklejał mi zakres w kazdy sheet o nazwie od 1-10.
Excel natomiast 1-10 uważa za numeracje sheetow chyba bo wkleja mi wartosc nawet gdy shett sie nazywa jakos inaczej.
Jak ogarnac ten loop??
mam cos takiego
Sub wkle()
Dim i As Integer
Dim sh As Worksheet
For i = 1 To 12
ActiveSheet.Range("S46:U52").Copy
Worksheets(i).Range("S46:U52").PasteSpecial ----------------- tu wywala mi blad
Next i
End Sub
Worksheets(i).Activate i potem linia z paste special
Możesz działać tylko na aktywnym sheecie, to Cię limituje.
ok to jeden blocker za nami.
tylko, że on mi wtedy wkleja wartosc w kazdy sheet, a ja chce zeby wklejal tylko w te ktore sie nazywaja 1-12 :)
źródło: comment_OqXCcsZjtrDMxsV1Y2mHgwTlQiIX9X6m.jpg
Pobierz1. sprawdził wszystkie skoroszyty, może poprzednio użyte makro wprowadza zmiany w pierwszych 12 a nie we wszystkich, wtedy da się to uratować
2. Spróbował drugiej metody adresowania skoroszytu Sheets(CStr(i)) pod tym samym kątem. Któreś z tych 2 powinno zadziałać albo dla skoroszytów 1-12 albo dla 12 pierwszych skoroszytów.
ok kolejny blocker rozwiazany. to dziala natomiast jak nie ma ktoregos z 12 sheetow to mi wywala error. jak to obejsc?
to juz ostatnie na dzis i ide spac
Żeby nie wywalał błąd to wyłącz obsługę błędów ;)
On error resume next
Set sh = Sheets(CStr(i))
sh.Range("S46:U52").PasteSpecial
On error goto 0
Zrób to tak:
Sub wkle()
Dim sh As Worksheet
Dim ws
a gdybym chcial "Set rng =..." ustawic 3 range to jak to zrobic?
Set rng = ws.range("S46:U52")
Set rng =
W ten sposób nadpisałbyś poprzednie Range, więc rng byłoby tylko takie jak w ostatniej linijce, czyli
ws. range("S246:U252")
Zadeklaruj po prostu kilka innych Range'ów
Dim rng1 As Range
Dim rng2