CAFE MỜI BẠN

QUÀ CỦA CHỊ TƯƠI NGUYỄN

ĐỒNG HỒ HOA

VŨ MAI CHÀO ĐÓN

2 khách và 0 thành viên

TÀI NGUYÊN DẠY HỌC

BẠN HỮU CỦA TÔI

HỖ TRỢ TRỰC TUYẾN

  • (Vũ Mai)

Dịch website

Ảnh ngẫu nhiên

Ho_ca.swf Happy_new_year.swf EMBEQUADOIVIBIDIENGIATTOVIOLET022815.jpg 20116.jpg Nhmoi.swf P1090425.jpg Dem_dong_loan.swf HAPPY_WOMEN_DAY_83.swf Hh.jpg Chauban6_3.jpg Qh.gif CUUNON_CHUC_TET.swf Baner_truong_1.swf Banner_truong2.swf BANERMOI.swf Index.swf Showimg.gif Rose_14jpg.jpg Snvumai.swf

ĐIỀU TRA Ý KIẾN

Bạn thấy trang này như thế nào?
Đẹp
Đơn điệu
Bình thường
Ý kiến khác

THỐNG KÊ

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • SẮP XẾP DỮ LIỆU

    KẾT NỐI YÊU THƯƠNG

    ẢNH ĐẸP

    picasion.com
    Gốc > Quà tặng dạng bài viết > Chia sẻ tin học > Excel >

    Chiêu thứ 8: Giới hạn vùng cuộn của bảng tính

    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 để ngoài vùng đó. Ngoà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ụ $A$1:$H$50.




    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:

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


    [/FONT]
    [/COLOR]
    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.
    Mặc dù không có vùng bao quanh tăm tối như cách trên, nhưng bạn không thể nào cuộn ra khỏi vùng, bạn cố chọn 1 ô nằm ngoà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 nguyên cột nguyên 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ụ:

    PHP Code:
    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:

    PHP Code:
    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:

    PHP Code:
    Private Sub Worksheet_Activate()
    With Me.UsedRange
    Me
    .ScrollArea = .Resize(.Rows.Count + 5, .Columns.Count + 2).Address
    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:

    PHP Code:
    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)
    Nhắn tin cho tác giả
    Vũ Thị Mai @ 15:33 14/11/2011
    Số lượt xem: 768
    Số lượt thích: 0 người
     
    Gửi ý kiến