TIỆN ÍCH - TRA CỨU

ĐỒNG HỒ TỰ CHẾ

ÂM LỊCH

NỘI DUNG CHÍNH DIỄN ĐÀN

HỖ TRỢ TRỰC TUYẾN

  • (Lê Kim Tường)

ĐIỀU TRA Ý KIẾN

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

LIÊN KẾT WEBSITES

THỐNG KÊ

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Ảnh ngẫu nhiên

    20289671.jpg 1242013SVTN1.jpg Cdsp1.gif Book11.jpg ONLINE.gif Vi_rut_pha_may_tinh_nhu_the_nao.swf LichsuVN.jpg Khonggicothethaytheem.mp3 Bay_giua_ngan_ha.swf Dong_song_que_anh_que_em.swf Flash_nen_181.swf Ok.flv Qua_tang_chuc_mung_nam_moi.swf MUNG_XUAN_TAN_MAO.swf Mot_khuc_tam1.swf Chuc_mung_nam_moi.swf Flas_mung_xuan_2011.swf Happy_new_yeardot_phao.swf CLICK_DE_THAY_DIEU_UOC_TRONG_NAM_MOI.swf

    Thành viên trực tuyến

    1 khách và 0 thành viên
    Gốc > Thủ thuật Excel >

    Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể

    Bạn đã từng tạo ra thanh công cụ riêng cho mình? Bạn có thấy rằng, thanh công cụ này luôn luôn được nạp vào Excel, và luôn hiển thị, với bất kỳ bảng tính nào, với bất kỳ người sử dụng nào?
     
     




    Có bao giờ, bạn muốn rằng, thanh công cụ tự tạo này chỉ được hiển thị với một bảng tính cụ thể nào đó mà thôi không?

    Ví dụ, bạn tự tạo ra một thanh công cụ có chứa những nút dùng để hỗ trợ việc nhập công thức và xử lý bảng (những dấu =, +, -, *, /, những nút dùng để xóa hàng, xóa cột, v.v...), tạm gọi là thanh công cụ A, phục vụ riêng cho bảng tính B. Và bạn muốn, làm thế nào để chỉ khi bạn mở bảng tính B, thì mới thấy thanh công cụ A của bạn, còn mở bảng tính khác, thì chỉ thấy những thanh công cụ mặc định của Excel? Thậm chí trong cùng một cửa sổ Excel, nhưng khi bạn kích hoạt bảng tính B, thì mới thấy thanh công cụ A, còn khi nhấn Ctrl+Tab để chuyển sang bảng tính khác, thì thanh công cụ A này sẽ biến mất?

    Thiết nghĩ, chắc hẳn đã có lúc bạn muốn điều tôi vừa nói. Vì nó giúp cho thanh công cụ của Excel luôn gọn gàng, ngăn nắp (luôn là thanh công cụ mặc định của Excel), nếu không phải là bạn, mà là người khác, thì không có gì bỡ ngỡ với thanh công cụ lạ hoắc; hoặc là, chỉ khi nào mở bảng tính B ra, thì mới cần đến thanh công cụ A, còn bình thường thì chẳng cần...

    Việc này, không có gì khó. Bạn chỉ cần chèn một đoạn code đơn giản vào trong "Private module" của bảng tính.

    Trước hết, bạn hãy tạo cho riêng mình một thanh công cụ. Đặt tên cho nó là "MyCustomToolbar" chẳng hạn.

    Tiếp theo, bạn nhấn Alt+F11 để mở cửa sổ Microsoft Visual Basic, nhấn đúp vào This workbook trong khung Project. Bạn cũng có thể làm nhanh việc này bằng cách nhấn nút phải chuột vào cái biểu tượng Excel bé tí nằm ngay bên trái menu File, rồi chọn View Code, cửa sổ VBA cũng sẽ mở ra với This workbook được chọn sẵn:

    18-module1
    Nhấn phải chuột vào biểu tượng Excel nhỏ bên trái menu File rồi chọn View Code

    Rồi, nhập vào hai đoạn code sau đây:

    PHP Code:
    Option Explicit
    --------------------------------------------------------------------

    Private 
    Sub Workbook_Activate
    ()
        
    On Error Resume Next
            With Application
    .CommandBars("MyCustomToolbar"
    )
                   .
    Enabled 
    True
                   
    .Visible 
    True
            End With
        On Error GoTo 0
    End Sub
     
    --------------------------------------------------------------------

    Private 
    Sub Workbook_Deactivate
    ()
        
    On Error Resume Next
            Application
    .CommandBars("MyCustomToolbar").Enabled 
    False
        On Error GoTo 0
    End Sub
    Bạn có thể thay thế "MyCustomToolbar" bằng cái tên mà bạn đã đặt cho thanh công cụ tự tạo của bạn. Sau đó bạn nhấn Alt+Q để trở về Excel.

    Để thử, bạn hãy mở thêm một bảng tính nữa, Book2.xls chẳng hạn. Bạn sẽ thấy, khi nào bạn chọn bảng tính mà có đoạn code ở trên, thì bạn mới thấy
    "MyCustomToolbar", còn nếu chọn Book2 (chuyển đổi qua lại giữa các bảng tính bằng Ctrl+Tab), "MyCustomToolbar" biến mất! Chọn lại bảng tính ban đầu, "MyCustomToolbar"
    xuất hiện lại. Vậy là thành công rồi!

    Được voi đòi tiên. Bây giờ, giả sử bạn muốn rằng, trong cùng một bảng tính, nhưng chỉ có Sheet1 thì mới thấy
    "MyCustomToolbar"
    , còn Sheet khác thì không?

    Được thôi. Bạn có thể viết thêm một "Level" nữa cho đoạn code trên. Hãy bảo đảm là bạn đang chọn bảng tính có chứa code (tốt nhất là bạn đóng cái Book2 đi). Quay trở lại cửa sổ VBA, bạn hãy nhấn phải chuột vào Sheet nào mà bạn muốn thấy
    "MyCustomToolbar"
    , rồi chọn View Code (hoặc nhấn đúp vào tên Sheet đó cũng được). Ở đây tôi giả sử bạn chọn Sheet1.

    Nhập vào hai đoạn code sau đây:

    PHP Code:
    Option Explicit
    --------------------------------------------------------------------

    Private 
    Sub Worksheet_Deactivate()
        
    On Error Resume Next
            Application
    .CommandBars("MyCustomToolbar").Enabled False
        On Error GoTo 0
    End Sub

    --------------------------------------------------------------------

    Private 
    Sub Worksheet_Activate()
        
    On Error Resume Next
            With Application
    .CommandBars("MyCustomToolbar")
                   .
    Enabled True
                   
    .Visible True
            End With
        On Error GoTo 0
    End Sub 
    Rồi nhấn Alt+Q để quay lại Excel. Bây giờ, bạn hãy dùng chuột hoặc nhấn Ctrl+PgUp/Ctrl+PgDn để chọn qua lại các Sheet và xem thử cái gì xuất hiện trên màn hình.

    Xin đính kèm theo đây bảng tính đã có sẵn những đoạn code nói trên, cùng một "MyCustomToolbar" làm ví dụ.
    Cũng xin nhắc lại, chiêu này chỉ có tác dụng với những phiên bản trước Excel2007.


    Nhắn tin cho tác giả
    Lê Kim Tường @ 20:32 15/06/2009
    Số lượt xem: 2418
    Số lượt thích: 0 người
     
    Gửi ý kiến