Nhờ các Bác giúp em hàm tự tạo viết hoa ký tự đầu

Liên hệ QC

QuangMinhtb

Thành viên hoạt động
Tham gia
31/10/19
Bài viết
171
Được thích
34
Trân trọng chào cả nhà GPE!
Em nhờ các Bác giúp em viết một hàm tự tạo để Viết in Hoa ký tự đầu của nội dung một ô trong excel.
Cảm ơn cả nhà GPE.
 
Dùng hàm kết hợp à anh? Em biết ạ!
Thử coi, hơi dài chút:
Mã:
Function Viethoa_Kytudau(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
    Viethoa_Kytudau = strContent
End Function
 
Upvote 0
Thử coi, hơi dài chút:
Mã:
Function Viethoa_Kytudau(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
    Viethoa_Kytudau = strContent
End Function
Cảm ơn anh nhé! Hơi dài nhưng vẫn ngon-0-0-0-
 
Upvote 0
Upvote 0
Trân trọng chào cả nhà GPE!
Em nhờ các Bác giúp em viết một hàm tự tạo để Viết in Hoa ký tự đầu của nội dung một ô trong excel.
Cảm ơn cả nhà GPE.
Thử dùng hàm sau để thay thế ký tự đầu tiên của câu.

=REPLACE(LOWER(A2),1,1,UPPER(LEFT(A2,1)))
 
Upvote 0
Mặc định khi viết mỗi ô thì chữ đầu đều là hoa thì tiện, chứ còn làm hàm như thế này thì khác gì dùng công thức hoa cho 1 ký tự đầu rồi nối chuỗi lại.
Bác có cách nào để "Mặc định khi viết mỗi ô thì chữ đầu đều là hoa" giúp em mới nhé! em cũng đang cần.
 
Upvote 0
Chọn vùng cần cho ký tự đầu là chữ Hoa rồi chạy thử code sau:
Mã:
Sub KyTuDau()
Dim Cell As Variant
For Each Cell In Selection
    If Len(Cell.Text) <> 0 Then
        Cell.Formula = UCase(Left(Cell.Text, 1)) & _
        LCase(Right(Cell.Text, Len(Cell.Text) - 1))
    End If
Next
End Sub
 
Upvote 0
Chọn vùng cần cho ký tự đầu là chữ Hoa rồi chạy thử code sau:
Mã:
Sub KyTuDau()
Dim Cell As Variant
For Each Cell In Selection
    If Len(Cell.Text) <> 0 Then
        Cell.Formula = UCase(Left(Cell.Text, 1)) & _
        LCase(Right(Cell.Text, Len(Cell.Text) - 1))
    End If
Next
End Sub
Chân thành cảm ơn Anh!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom