czwartek, 14 marca 2013

Obszar komórek Range 3D

Technika pracy z obszarami 3D posiada swoje odniesienie do standardowych rozwiązań znanych z Excela. Po jednoczesnym zaznaczeniu kilku arkuszy wprowadzając wartości do jednego z nich automatycznie tworzymy adekwatne wpisy do tych samych zakresów komórek we wszystkich zaznaczonych arkuszach.

Podobną technikę możemy zastosować korzystając z VBA. Poniższy przykład generuje wpisy we wszystkich 3 arkuszach zaznaczonych poleceniem Select.

1Sub Obszar_3D_Select()
2 
3    'odpowiedni efekty tylko tylko z zaznaczeniem
4    Sheets(Array(1, 2, 3)).Select
5    Range("A1:E1").Select
6    Selection = "A"
7    
8End Sub

Co jednak ważne- powyższa technika wymaga zaznaczenia komórek przed ich wypełnieniem. Poniższy przykład, choć intuicyjnie zgodny z powyższym nie daje identycznego rezultatu.
1Sub Obszar_3D_bez_Select()
2 
3    'nie uzyskamy efektu bez zaznaczenia komórek
4    Sheets(Array(1, 2, 3)).Select
5    Range("A2:E2").Value = 1
6 
7End Sub

Inne adekwatne rozwiązanie prezentuje poniższy przykład wykorzystujący specjalną właściwość obiektu Worksheet.
01Sub Obszar_3D_inaczej()
02 
03    With Worksheets(1).Range("A3:E3")
04        .Value = "ABC"
05        .Interior.Color = vbBlue
06    End With
07 
08    'technika z wykorzystaniem metody FillAcrossSheets
09    Worksheets.FillAcrossSheets Worksheets(1).Range("A3:E3")
10 
11End Sub

Brak komentarzy:

Prześlij komentarz