Wednesday, April 25, 2012

Chiêu 43: Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải

Chiêu 43: Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải

Tạo một danh sách để fill trong Excel thông qua Fill handle là việc làm rất hay để nhanh chóng nhập danh sách các chuỗi số hoặc chuỗi văn bản vào bảng tính. Excel đã xây dựng sẵn một số Custom List về các ngày trong tuần (Sun - Sat), danh sách các tháng (Jan – Dec) và các chuỗi số nhưng bạn cũng có thể tự tạo thêm các danh sách mới cho mình. Phần này sẽ hướng dẫn bạn các tạo thêm Custom List cho Fill Handle.

Trước tiên, bạn cần nhập vào danh sách các phần tử cần đưa vào Custom List trên bảng tính. Ví dụ như bạn nhập và 26 chữ cái trong các ô A1:A26 trên Sheet1. Sau đó nhấn vào nút Office
Excel Options Popular Edit Custom Lists (E2003: Tools Options Custom Lists). Nhấp chọn nút nằm bên trái nút Import và dùng chuột quét chọn vùng dữ liệu A1:A26. Sau đó nhấn nút Import và OK. Kể từ lúc này danh sách các chữ cái sẽ có thể sử dụng để fill trong tất cả bảng tính trên máy tính này.



Tiếp theo, để đưa các Custom List vào trong thực đơn ngữ cảnh thì bạn nhấn tổ hợp ALT+F11 rồi vào Insert
Module. Sau đó, bạn nhập vào đoạn mã như sau:

Code:

Sub AddFirstList()

    Dim strList As String

    strList = Application.CommandBars.ActionControl.Caption

    If Not strList Like "*...*" Then Exit Sub

    ActiveCell = Left(strList, InStr(1, strList, ".", vbTextCompare) - 1)

End Sub[/highlight]

 

Bạn kích chuột hai lần lên ThisWorkbook trong cửa sổ VBAProject và nhập vào đoạn mã sau:

 

[highlight=VB]

Private Sub Workbook_SheetBeforeRightClick _

        (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    Dim cBut As CommandBarButton

    Dim lListCount As Long

    Dim lCount As Long

    Dim strList As String

    Dim MyList

    On Error Resume Next

    With Application

        lListCount = .CustomListCount

        For lCount = 1 To lListCount

            MyList = .GetCustomListContents(lCount)

            strList = .CommandBars("Cell").Controls(MyList(1) & "..." & _

             MyList(UBound(MyList))).Caption

            .CommandBars("Cell").Controls(strList).Delete

            Set cBut = .CommandBars("Cell").Controls.Add(Temporary:=True)

            With cBut

                .Caption = MyList(1) & "..." & MyList(UBound(MyList))

                .Style = msoButtonCaption

                .OnAction = "AddFirstList"

            End With

        Next lCount

    End With

    On Error GoTo 0

End Sub

Đóng cửa sổ VBE và lưu bảng tính lại. Sau đó nhấp phải chuột vào một ô nào đó trên bảng tính, bạn sẽ thấy các Custom List dựng sẵn và do bạn tạo xuất hiện trong trình đơn ngữ cảnh.



Muốn sử dụng, bạn chỉ cần nhấn chuột phải vào ô chọn, rồi chọn 1 trong các list hiện ra trong menu ngữ cảnh, bạn sẽ có giá trị thứ nhất của list. Sau đó kéo cái Fill handle để fill list như mọi khi

No comments:

Post a Comment