• Chủ Nhật, 20/02/2011 08:56 (GMT+7)

    Định dạng trong Excel

    Lượt xem 27637
    Đánh giá

    Từ khóa: Excel
    Câu hỏi :

    Xin hỏi cách định dạng trong Excel: tôi muốn sau khi nhập dãy số (hoặc dạng text) 6868682312345678 và Enter sẽ có định dạng như 6868-6823-1234-5678.
    Tôi vào menu Format.Cells.Number, chọn custom định dạng: ####-####-####-#### nhưng khi nhập dãy số trên lại hiển thị: 6868-6823- 1234-5670.
    Có cần phải viết module (hay macro) để giải quyết vấn đề trên?



    Trả lời :

    Nếu bạn nhập dãy các ký số thập phân (thí dụ 6868682312345678) vào 1 cell nào đó (thí dụ cell B3) và muốn máy hiển thị theo định dạng 6868-6823-1234-5678, bạn có thể định dạng hiển thị cho cell đó như cách bạn đã làm, nghĩa là chọn cell cần định dạng, chọn menu Format.Cells, chọn tag Number, chọn mục Custom, nhập chuỗi định dạng vào textbox Type như sau: ####-####-####-####. Kết quả cell đó sẽ hiển thị chuỗi 6868-6823-1234-5678.

    Tuy nhiên nếu bạn nhập dãy ký tự chữ số (tức dạng text chứ không phải dạng số) thì thao tác định dạng như trên không có kết quả vì thao tác định dạng trên chỉ phục vụ cho dữ liệu số.

    - Bạn có thể viết 1 macro (hay 1 hàm tự định nghĩa) để định dạng dữ liệu theo ý riêng của mình, tuy nhiên macro hay hàm do bạn viết sẽ không tự động định dạng dữ liệu ngay ở cell mà người dùng đang nhập liệu, nó chỉ có thể định dạng dữ liệu cell đang nhập và hiển thị kết quả ở cell khác. Sau đây là qui trình viết 1 hàm tự định nghĩa và dùng hàm này để định dạng dữ liệu nhập:

    1. Chạy Excel, mở file Excel chứa dữ liệu cần xử lý.

    2. Nhập thử 1 số chứa nhiều ký số hay 1 chuỗi ký tự bất kỳ vào cell xác định (thí dụ A1).

    3. Chọn menu Tools.Macro.Visual Basic Editor để mở cửa sổ soạn code VBA.

    4. Dời chuột về phần tử gốc của cửa sổ "Project" nằm ở trên trái màn hình, nhấn phải chuột vào phần tử gốc để hiển thị menu lệnh, chọn mục Insert.Module để tạo mới 1 module mã nguồn VBA. Khi cửa sổ mã nguồn trống hiển thị, bạn hãy viết 1 hàm định dạng chuỗi sau đây vào:

    Option Explicit
    Public Function MyFormat(rg As Range) As String
    Dim istr As String, ostr As String
    Dim igroup As Integer
    Dim ilen As Integer, ile As Integer
    'xác định chuỗi cần định dạng
    istr = rg.Cells(1, 1)
    ilen = Len(istr)
    'xác định số nhóm 4 ký tự
    igroup = ilen \ 4
    ile = ilen Mod 4
    If ile <> 0 Then igroup = igroup + 1
    'xác định nhóm ký tự bên trái nhất
    ostr = Left(istr, ile)
    istr = Mid(istr, ile + 1)
    igroup = igroup - 1
    While igroup <> 0
    'xác định từng nhóm 4 ký tự còn lại
    ostr = ostr & "-" & Left(istr, 4)
    istr = Mid(istr, 5)
    igroup = igroup - 1
    Wend
    'trả chuỗi kết quả về
    MyFormat = ostr
    End Function

    5. Chọn menu File.Close and Return... để quay về cửa sổ hiển thị bảng tính.

    6. Chọn cell B1, nhập nội dung sau vào cell :

    =MyFormat(A1)

    7. Bạn sẽ thấy ngay chuỗi định dạng hiển thị ở cell B1. Từ đây mỗi khi người dùng hiệu chỉnh lại nội dung cell A1 thì nội dung cell B1 cũng sẽ được cập nhật lại tự động.

    Ý kiến phản hồi và bình luận      Gởi ý kiến của bạn ?
    Chuyên mục: Ứng dụng văn phòng