Dzień dobry.
Mam taki kod:
Sub skopiujDruk(i As Integer, nazwaArkusza As String)
Dim ws As Worksheet
Set ws = Worksheets(nazwaArkusza)
Dim r As Range
Set r = ws.Range(Cells(1, 1), Cells(39, 9))
r.Copy
Dim cel As Range
Set cel = ws.Range("J1")
cel.PasteSpecial xlPasteAll
End Sub
I on działa, ale gdy zamiast ws.Range("J1")
użyję ws.Range(Cells(1, 1 + 9 * (i - 1)), Cells(39, 9 + 9 * (i - 1)))
, to wkleja mi jakoś tak pokracznie, wszystko się przesuwa i nie wiadomo czemu. Jak obejść ten problem?
Albo inaczej, jak przekazać metodzie Range adres kolejnych komórek, w formacie tekstowym, w stylu "J1"
.
Dzięki.
PS.
Próbowałem też przekazać adres jednej komórki, w stylu Range(Cells(1, 1 + 9 * (i - 1)))
, ale wkleja identycznie pokracznie.
Kod który nie działa:
Sub skopiujDruk(i As Integer, nazwaArkusza As String)
Dim ws As Worksheet
Set ws = Worksheets(nazwaArkusza)
Dim r As Range
Set r = ws.Range(Cells(1, 1), Cells(39, 9))
r.Copy
Dim cel As Range
Set cel = ws.Range(Cells(1, 1 + 9 * (i - 1)), Cells(39, 9 + 9 * (i - 1)))
cel.PasteSpecial xlPasteAll
End Sub
PS.
Dodam, że vba wkleja mi tak, że całość jest przesunięta o 1 kolumnę w tył. Jak użyję PasteSpecial xlPasteValues
to nie ma przesunięcia, ale jest niesformatowana tabela.