Giới hạn vùng cuộn của bảng tính

Một phần của tài liệu Những tuyệt chiêu hay trong excel (Trang 42 - 47)

Nếu bạn khơng muốn thanh cuộn kéo bảng tính lên xuống hoặc qua phải nhiều, hoặc bạn có dữ liệu ở 1 vùng nào đó mà khơng muốncho nguời dùng xem, bạn có thể giới hạn vùng nhìn được của bảng tính trong phạm vi bạn cho phép.

Các bảng tính tạo bởi Excel 2007 có số cột tối đa 16.384, Excel trước đó là 256 (từ A đến IV), và có số dịng tối đa là 1.048.576 (trước đó là 65.536). Nhưng thường thì bạn hiếm khi sử dụng hết. Bạn có thể giới hạn chỉ cho người dùng xem trong 1 phạm vi nào đó, cịn dữ liệu nhạy cảm, bạn để ngồi vùng đó. Ngồi ra nó cịn hạn chế khi ai đó vơ tình kéo thanh cuộn xuống dịng 500.000 và đến lượt người khác la làng rằng kéo mãi chẳng thấy cái gì mà xem.

Bạn có thể dùng cách đơn giản là dấu (Hide) những dòng và cột muốn dấu hoặc bằng cách định nghĩa 1 vùng cho phép xem hoặc chỉ kích hoạt vùng có dữ liệu. 1.Dấu dịng và cột:

Cách dễ nhất là dấu những dịng và cột khơng dùng đến:

Trên sheet hiện hành, xác định dịng cuối có dữ liệu, nhấn chọn dịng dưới nó, nhấn thêm cùng lúc Ctrl + Shift + mũi tên xuống để chọn đến cuối dòng cuối cùng (1.048.576). Sau đó trong tab Home, chọn Format Hide & Unhide – Hide Rows trong Excel 2007 hoặc Format - Row - Hide trong 2003 trở về trước, hoặc click phải chuột và chọn Hide.

Làm tương tự như vậy để dấu những cột khơng dùng đến: tìm cột cuối, click chọn cột kế bên, nhấn Ctrl + Shift + mũi tên sang phải, chọn hide columns.

Kết quả như hình, vùng làm việc bị trùm 1 màu tăm tối chung quanh và chẳng ai có thể kéo đi đâu được nữa:

2.Xác định 1 vùng sử dụng bằng Property:

Bằng cách sử dụng Property của sheet trong VBA, bạn có thể ấn định vùng làm việc trong phạm vi mong muốn. Thực hiện như sau:

Nhấn chuột phải vào tên sheet trong tab Sheet Names, chọn View code, hoặc nhấn Alt + F11, chọn đúng tên sheet trong cửa sổ Project Explorer, rồi xuống khung Property, tìm dịng ScrollArea gõ vào địa chỉ vùng mong muốn thí dụ

Quay trở lại bảng tính và thử kéo thanh cuộn, ta thấy chỉ có thể cuộn xuống đến dòng 50 và cuộn ngang đến cột H là tối đa, khơng cuộn được nữa.

Tuy vậy, Excel khơng lưu tính chất này khi lưu bảng tính, nên lần sau mở file lên phải set Property lại. Do đó ta phải viết 1 đoạn code thực hiện điều này mỗi khi kích hoạt sheet. Vào vùng soạn thảo code của đúng sheet mình muốn, chọn sự kiện worksheet_activate:

Private Sub Worksheet_Activate ( ) Me.ScrollArea = "A1:H50"

End Sub

Bây giờ mỗi khi kích hoạt bảng tính, VBA sẽ ấn định vùng giới hạn như mong muốn.

cuộn ra khỏi vùng, bạn cố chọn 1 ô nằm ngồi vùng cho phép cũng khơng được, kể cả cột I, J, K dù bạn có ngó thấy cũng chỉ để thèm thơi.

Thậm chí với những đoạn code VBA bạn tạo sau này, trong đó có câu lệnh select 1 vùng nằm ngoài vùng cho phép, hoặc chọn ngun cột ngun dịng, cũng khơng chọn được.

Để có thể thực thi các đoạn code trên bạn phải cho vào code 2 dòng lệnh: Đầu code thêm dòng: ActiveSheet.ScrollArea = ""

Cuối code thêm dịng: ActiveSheet.ScrollArea = "$A$1:$G$50" Thí dụ: Sub MyMacro( ) ActiveSheet.ScrollArea = "" Range("Z100").Select Selection.Font.Bold = True ActiveSheet.ScrollArea = "$A$1:$G$50" Sheets("Daily Budget").Select ActiveSheet.ScrollArea = "" Range ("T500").Select Selection.Font.Bold = False ActiveSheet.ScrollArea = "$A$1:$H$25" End Sub

Đoạn code trên chọn ô Z100 trong sheet hiện hành và định dạng in đậm. Sau đó chọn ơ T500 trong sheet khác, định dạng in thường (không đậm). Trước khi thực hiện chọn và định dạng ở sheet nào, phải set vùng cuộn sheet đó là “”. Sau khi định dạng,set trả vùng giới hạn cuộn theo mong muốn.

3.Chỉ kích hoạt vùng dữ liệu hiện hành:

Phương pháp này linh hoạt hơn, tự động giới hạn vùng cuộn bảng tính vừa bằng vùng dữ liệu của bảng tính mà bạn đặt code sau:

Private Sub Worksheet_Activate( ) Me.ScrollArea =Me.UsedRange. Address End Sub

Đoạn code trên sẽ chạy mỗi khi bạn kích hoạt bảng tính mà bạn đặt code. Dù vậy cũng có hạn chế là bạn khơng thể thêm dữ liệu vào dòng mới hoặc cột mới. Bạn có thể mở rộng vùng giới hạn ra thêm 5 dòng và 2 cột bằng đoạn code sau: Private Sub Worksheet_Activate()

With Me.UsedRange

Me.ScrollArea = .Resize(.Rows.Count + 5, .Columns.Count + 2).Add ress

End With End Sub

Còn nếu bạn muốn hơn nữa, nhập liệu thêm 1 cách thoải mái, thì dùng 1 đoạn code nhằm reset vùng cuộn bằng nguyên sheet::

Sub ResetScrollArea( )

ActiveSheet.ScrollArea = "" End Sub

Bạn có thể gán short key (phím tắt) cho đoạn code này bằng cách nhấn Alt F8, chọn macro ResetScrollArea, nhấn nút option, và gán 1 phím tắt thí dụ Ctrl + W.

Sau này mỗi khi bạn muốn nhập liệu, nhấn Ctrl + W trước khi nhập liệu. Khi nhập liệu xong, chỉ cần bạn kích hoạt 1 sheet khác xong quay lại sheet này, vùng cuộn lại bị giới hạn bởi đoạncode trên (Worksheet_Activate())

Một phần của tài liệu Những tuyệt chiêu hay trong excel (Trang 42 - 47)

Tải bản đầy đủ (DOCX)

(185 trang)
w