Thứ Sáu, 17 tháng 1, 2014

Viết hoa chữ cái đầu dòng một ô trong Excel

(Thủ thuật VBA trong Excel)

- Trong Word việc tắt/bật tính năng tự động viết chữ hoa đối với chữ cái đầu tiên trong một câu rất dễ dàng, vì đây là phần mềm chuyên để xử lý và định dạng văn bản. Tuy nhiên khi sang Excel, chức năng này chỉ hỗ trợ tự động viết hoa chữ cái đầu tiên sau dấu chấm (.) còn với câu đầu tiên trong một ô thì Excel lại không hỗ trợ. Người sử dụng phải sử dụng phím Shift để thực hiện công việc này. Hoặc người sử dụng vẫn nhập thông tin bình thường rồi sử dụng các hàm có sẵn hoặc các hàm tự viết để chuẩn hóa theo ý của mình.


Dưới đây là các giải pháp do Kênh phần mềm việt đưa ra để xử lý vấn đề này.

1. Sử dụng kết hợp các hàm có sẵn
- Viết hoa chữ cái đầu tiên của câu
=CONCATENATE(UPPER(LEFT(B2,1)),RIGHT(B2,LEN(B2)-1))
Hoặc 
=UPPER(LEFT(B2,1))&LOWER(RIGHT(B2,LEN(B2)-1))
- Viết hoa chữ cái đầu tiên của mỗi từ sử dụng hàm PROPER
=PROPER(B2)
- Viết hoa toàn bộ sử dụng hàm UPPER
=UPPER(B2)
Trong đó: B2 là cột dữ liệu cần chuẩn hóa

2. Sử dụng VBA
Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
Vào Menu Inser\Module

Nhập toàn bộ đoạn mã sau vào

Function CapitalizeSentence(ByVal strContent As String) As String
    Dim m As Object
    strContent = LCase(strContent)
    strContent = Application.Replace(strContent, 1, 1, UCase(Left$(strContent, 1)))
    With CreateObject("VBScript.RegExp")
        .Pattern = "\.\s."
        .Global = True
        For Each m In .Execute(strContent)
            strContent = Application.Replace(strContent, m.FirstIndex + 1, m.Length, UCase(m.Value))
        Next
    End With
    CapitalizeSentence = strContent
End Function

Hoặc

Function CapitalizeSentence(txt As String) As String
    Dim e
    For Each e In Split(txt, ".")
        SentenceCase = SentenceCase & ". " & UCase(Left$(Trim(e), 1)) & LCase(Mid$(Trim(e), 2))
    Next
    SentenceCase = Mid$(SentenceCase, 3)
End Function

Sau khi nhập xong các đoạn Code trên, bạn quay trở lại màn hình làm việc Excel và sử dụng các hàm này như các hàm có sẵn của Excel.
= CapitalizeSentence(B2)

Không có nhận xét nào:

Đăng nhận xét

Các con vật cho bé học, video dạy bé học nói, các con vật thân quen,các con vật giúp bé học nói