Nhờ tạo hàm UDF(Function) tách chữ hoa chữ thường

Liên hệ QC

Xuyên đảo băng hồ

Vouloir c'est pouvoir
Tham gia
23/10/18
Bài viết
17
Được thích
34
Chào anh chị, em muốn tạo hàm UDF để tách chữ hoa chữ thường, nhờ anh chị hỗ trợ. Em cảm ơn anh chị.
 

File đính kèm

  • hoa - thường.JPG
    hoa - thường.JPG
    53.3 KB · Đọc: 26
  • Tách chữ hoa chữ thường.xlsb
    8.5 KB · Đọc: 9
Này thì hoa và lá

PHP:
Function Hoa(MyStr As String) As String
Dim Ln As Long
Ln = Len(MyStr)
For i = 1 To Ln
    If UCase(Mid(MyStr, i, 1)) = Mid(MyStr, i, 1) And _
    UCase(Mid(MyStr, i + 1, 1)) <> Mid(MyStr, i + 1, 1) Then Exit For
Next
Hoa = Trim(Left(MyStr, i - 1))
End Function
'-----'
Function Thuong(MyStr As String) As String
Thuong = Right(MyStr, Len(MyStr) - Len(Hoa(MyStr)))
End Function
 
Upvote 0
Này thì hoa và lá

PHP:
Function Hoa(MyStr As String) As String
Dim Ln As Long
Ln = Len(MyStr)
For i = 1 To Ln
    If UCase(Mid(MyStr, i, 1)) = Mid(MyStr, i, 1) And _
    UCase(Mid(MyStr, i + 1, 1)) <> Mid(MyStr, i + 1, 1) Then Exit For
Next
Hoa = Trim(Left(MyStr, i - 1))
End Function
'-----'
Function Thuong(MyStr As String) As String
Thuong = Right(MyStr, Len(MyStr) - Len(Hoa(MyStr)))
End Function
Hay quá cảm ơn anh nhiều. Mà sao em thắc mắc logo của anh, nên sửa lại. Good Excel, Super Excel mới đúng.......... Cảm ơn anh ptm0412 (Good Excel) nhiều.
 
Upvote 0
Hay quá cảm ơn anh nhiều. Mà sao em thắc mắc logo của anh, nên sửa lại. Good Excel, Super Excel mới đúng.......... Cảm ơn anh ptm0412 (Good Excel) nhiều.
Danh từ chính là Member, Excel là phụ, bad là tính từ của danh từ chính (member), không phải tính từ của "excel"
Và đó cũng không phải logo
 
Upvote 0
Này thì hoa và lá

PHP:
Function Hoa(MyStr As String) As String
Dim Ln As Long
Ln = Len(MyStr)
For i = 1 To Ln
    If UCase(Mid(MyStr, i, 1)) = Mid(MyStr, i, 1) And _
    UCase(Mid(MyStr, i + 1, 1)) <> Mid(MyStr, i + 1, 1) Then Exit For
Next
Hoa = Trim(Left(MyStr, i - 1))
End Function
'-----'
Function Thuong(MyStr As String) As String
Thuong = Right(MyStr, Len(MyStr) - Len(Hoa(MyStr)))
End Function
Sao bạn biết chúng không lẫn lộn nhau? (HOA thường HOA thường)
Nếu HOA luôn luôn đi trước thường thì dùng cách rò nhị phân xịn hơn (xịn thoi chứ chuỗi ngắn ngủn, nhị phân không hiệu quả lắm). Hàm chính dùng cách dò để tìm vị trí ngăn giữa Hoa và thường. Haio hàm phụ dùng vị trí này để tách.

Code sau đây vết cho HOA Thường lẫn lộn (từ có lẫn tùm lum ký tự hoa và thường thì coi như thường)

Functon HOAThuong(s As String)
Dim Hoa, Thuong
Dim i As Long
Hoa = Split(s, " ")
Thuong = Hoa
For i = LBound(Hoa) To Ubound(Hoa)
If UCase(Hoa(i)) = Hoa(i) Then
Thuong(i) = "" ' tu hoa, xoa ben thuong
Else
Hoa(i) = "" ' tu thuong, xoa ben hoa
End If
Next i
HOAThuong = VBA.Array(Application.Trim(Join(Hoa, " ")), Application.Trim(Join(Thuong, " ")))
End Functiion

Function TachLayHOA(s As String) As String
TachLayHOA = HOAThuong(s)(0)
End Function

Function TachLayThuong(s As String) As String
TachLayHOA = HOAThuong(s)(1)
End Function
 
Upvote 0
Bác viết sai chính tả nhiều quá Viet Mini, Code TachLayThuong sai nghiêm trọng. Mình sửa lại

Function HOAThuong(s As String)
Dim Hoa, Thuong
Dim i As Long
Hoa = Split(s, " ")
Thuong = Hoa
For i = LBound(Hoa) To UBound(Hoa)
If UCase(Hoa(i)) = Hoa(i) Then
Thuong(i) = ""
Else
Hoa(i) = ""
End If
Next i
HOAThuong = VBA.Array(Application.Trim(Join(Hoa, " ")), Application.Trim(Join(Thuong, " ")))
End Function

Function TachLayHOA(s As String) As String
TachLayHOA = HOAThuong(s)(0)
End Function

Function TachLayThuong(s As String) As String
TachLayThuong = HOAThuong(s)(1)
End Function
 
Upvote 0
Sao bạn biết chúng không lẫn lộn nhau? (HOA thường HOA thường)
Dữ liệu mẫu nó vậy đó anh. Nhìn sơ qua cũng đoán nó sẽ như vậy. Tôi viết nhanh và chỉ áp dụng cho dữ liệu này, bài này. Nếu viết siêu hàm hoặc chia sẻ thì phải viết khác
 
Upvote 0
Danh từ chính là Member, Excel là phụ, bad là tính từ của danh từ chính (member), không phải tính từ của "excel"
Và đó cũng không phải logo
Excel Member là một trong những thuộc tính hoặc phương thức của Excel Application.

Bad Excel Member tức là cái thuộc tính khó xài, hoặc xài nguy hiểm? Chắc là đâu đấy trong mấy cái hàm Macro 4. :p

Mà quả lão này khó xài thật.
 
Upvote 0
Khó xài gì đâu anh? Dễ gần chết, còn bị xài hao quá ấy. Nhưng lại có giá nhé: Chết tiệt có giá
Giá:
Nghĩa 1: trị giá (price)
Nghĩa 2: giá đậu (bean srout)
Nghĩa 3: nơi gác/treo đồ (shelf, shelving, hook/hang)
Nghĩa 4: đàn bà/đàn ông mất người hôn phối (widow/widower)
Nghĩa 5: ế, ở giá, bà cố cô (spinster)
Còn nghĩa gì nữa hôn ta.

Nghĩa đúng nhất ở đây chắc là "chết tiệt đem treo"
 
Upvote 0
Web KT
Back
Top Bottom