Wpis z mikrobloga

Mirki z pod tagów #excel #programowanie - aj nid help.
i może #programista15k jakiś pomoże.

Mam plik excel z 2 arkuszami, nazwijmy je "Arkusz1" i "Arkusz2". Na arkuszu 1 mam tabelę "A2:Y5" sformatowaną przy użyciu formatowania warunkowego, w zależności od wiersza 1, czyli w zasadzie od wartości A1:Y1.

chcę kopiować zakres A2:Y5 z Arkusza1 do zakresu A7:Y10 w Arkuszu2, tak, by kolory komórek pozostały takie same jak na arkuszu1.

O ile jako-tako działa to z ręki, bo dodaje "!Arkusz1" do nazwy zmiennej w funkcji formatowania warunkowego, to w VBA już nie jest tak pięknie i każdy typ funkcji .pastespecial kopiuje formatowanie razem z odnośnikami, czyli mam formatowanie na Arkuszu2 względem wiersza 6 na arkuszu 2...

Ktoś, coś...?
  • 2
@czyznaszmnie: Sub kopiuj_zakres()
Dim r1 As Range, r2 As Range
Dim w As Long, x As Long, k As Integer, y As Integer

Set r1 = Arkusz1.[a2:y5]
Set r2 = Arkusz2.[a7:y10]

w = r1.Rows.Count
k = r1.Columns.Count

For y = 1 To k
For x = 1 To w
r2.Cells(x, y).Value2 = r1.Cells(x, y).Value2
With r1.Cells(x, y).DisplayFormat.Interior
If .ColorIndex = xlColorIndexNone Then
r2.Cells(x, y).Interior.ColorIndex = xlColorIndexNone
Else
r2.Cells(x, y).Interior.Color = .Color