Để chuyển chữ thường sang chữ hoa

Liên hệ QC

ongtrungducmx25

Thành viên gạo cội
Tham gia
5/2/07
Bài viết
2,077
Được thích
1,987
Nghề nghiệp
GV
Để chuyển chữ thường sang chữ hoa , bạn cắt dán theo nội dung dưới đây
Sub MakeProper()
Dim rngSrc As Range
Dim lMax As Long, lCtr As Long

Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)
lMax = rngSrc.Cells.Count

For lCtr = 1 To lMax
If Not rngSrc.Cells(lCtr).HasFormula Then
rngSrc.Cells(lCtr) = Application.Proper(rngSrc.Cells(lCtr))
End If
Next lCtr
End Sub
 
đánh như thế nào để chuyển đổi đc hả bạn ơi? mình đã copy và past vào modul rồi. sori vì mình ko hiểu vba, nhưng thích nghịch nó để thấy cái hay thì áp dụng.
 
để minh thử tạo một nút nào đó để chuyển cho gọn nhẹ khổi mất công gõ công thức cho đở mệt hiện giờ mình chưa biết nhé! thông cảm. hêhhehehhehe
 
Trong Excel cũng có hàm UPPER(text) để chuyển chữ thường thành chữ hoa
 
ongtrungducmx25 đã viết:
để minh thử tạo một nút nào đó để chuyển cho gọn nhẹ khổi mất công gõ công thức cho đở mệt hiện giờ mình chưa biết nhé! thông cảm. hêhhehehhehe

Bạn vẽ đại một cái gì đấy sau đó assign macro vào là xong mà.
 

File đính kèm

  • Proper.xls
    23.5 KB · Đọc: 1,360
Việc chuyển đổi chữ trong excel đã có sẵn các hàm Upper, Proper, Lower, ...
 
tedaynui đã viết:
Trong Excel cũng có hàm UPPER(text) để chuyển chữ thường thành chữ hoa

Hàm UPPER(text) chuyển toàn bộ text thành chữ hoa, còn Sub của bạn ongtrungducmx25 chỉ chuyển chữ cái đầu thôi.
Thân!
 
Lam_A0 đã viết:
Hàm UPPER(text) chuyển toàn bộ text thành chữ hoa, còn Sub của bạn ongtrungducmx25 chỉ chuyển chữ cái đầu thôi.
Thân!

Bạn dùng hàm Proper có sẵn của excel cũng làm được việc này - khỏe re !
 
Các bạn có thể dùng hàm này để chuyển chữ thường thành chữ hoa cho Unicode
Mã:
[FONT=Verdana]Function ProperUni(uni) As String[/FONT]
[FONT=Verdana]uni = " " & LCase(uni)[/FONT]
[FONT=Verdana]For n = 2 To Len(uni)[/FONT]
[FONT=Verdana]kytu = Mid(uni, n, 1)[/FONT]
[FONT=Verdana]If Mid(uni, n - 1, 1) = " " Then[/FONT]
[FONT=Verdana]If AscW(kytu) < 256 Then[/FONT]
[FONT=Verdana]kytu = UCase(kytu)[/FONT]
[FONT=Verdana]Else[/FONT]
[FONT=Verdana]kytu = ChrW(AscW(kytu) - 1)[/FONT]
[FONT=Verdana]End If[/FONT]
[FONT=Verdana]End If[/FONT]
[FONT=Verdana]puni = puni & kytu[/FONT]
[FONT=Verdana]Next[/FONT]
[FONT=Verdana]ProperUni = puni[/FONT]
[FONT=Verdana]End Function[/FONT]
 
phamduylong đã viết:
Các bạn có thể dùng hàm này để chuyển chữ thường thành chữ hoa cho Unicode
Mã:
[FONT=Verdana]Function ProperUni(uni) As String[/FONT]
[FONT=Verdana]uni = " " & LCase(uni)[/FONT]
[FONT=Verdana]For n = 2 To Len(uni)[/FONT]
[FONT=Verdana]kytu = Mid(uni, n, 1)[/FONT]
[FONT=Verdana]If Mid(uni, n - 1, 1) = " " Then[/FONT]
[FONT=Verdana]If AscW(kytu) < 256 Then[/FONT]
[FONT=Verdana]kytu = UCase(kytu)[/FONT]
[FONT=Verdana]Else[/FONT]
[FONT=Verdana]kytu = ChrW(AscW(kytu) - 1)[/FONT]
[FONT=Verdana]End If[/FONT]
[FONT=Verdana]End If[/FONT]
[FONT=Verdana]puni = puni & kytu[/FONT]
[FONT=Verdana]Next[/FONT]
[FONT=Verdana]ProperUni = puni[/FONT]
[FONT=Verdana]End Function[/FONT]

mình chuyển từ .vntime font ABC sang Unicode không được. Có cách nào một văn bản chuyển từ .VNtime sang font Unicode VD Arial dc không bạn? vì có những văn bản (sẵn có) phải chuyển cho người việt ở nước ngoài thì họ không đọc được font vntime.mà họ chỉ có time new romance và arial thì ok.
 
Mấy cái chuyển đổi Font, đọc số thành chữ ... mấy cái này các bạn Search trên 4R nhiều lắm. Mình nhớ bác Phamduylong có post bài viết lẫn file rất hay đó.
TDN
 
Em đã làm bản chuyển đổi có thể chuyển đổi được ,các bạn phải phủ khối chọn vùng cần chuyển đổi nhé, cả chữ hoa lẫn chữ thường nhé mong các bạn cải thiện cho hoàn hảo hơn.--=0 :-= ||||| !$@!!
 

File đính kèm

  • ProperHoavaThuong.rar
    10.8 KB · Đọc: 405
Lần chỉnh sửa cuối:
Nguyễn Hương Thơm đã viết:
mình chuyển từ .vntime font ABC sang Unicode không được. Có cách nào một văn bản chuyển từ .VNtime sang font Unicode VD Arial dc không bạn? vì có những văn bản (sẵn có) phải chuyển cho người việt ở nước ngoài thì họ không đọc được font vntime.mà họ chỉ có time new romance và arial thì ok.
Nếu là Excel, tham khảo:
http://www.giaiphapexcel.com/forum/showthread.php?t=2738
 
các bác cho em hỏi cách tạo ra hàm(hay thủ tục) proper như thế nào. Ý em là nếu giả sử như bây giờ trong excel ko có hàm proper thì mình sẽ tạo ra nó như thế nào. Thanks!
 
connhangheo đã viết:
các bác cho em hỏi cách tạo ra hàm(hay thủ tục) proper như thế nào. Ý em là nếu giả sử như bây giờ trong excel ko có hàm proper thì mình sẽ tạo ra nó như thế nào. Thanks!

Thì hình như là ý tưởng thế này.
đọc tửng ký tự của chuỗi
ký tự đầu tiên thì chắc chắn viết hoa rồi (tức là đổi chữ cái đó thành chữ cái viết hoa trong bảng mã tương ứng)

đọc ký tự tiếp theo nếu gặp các ký tự đặc biệt như space, ., !, .... thì ký tự kế đó sẽ được đổi thành chữ hoa

không phải là ký tự đặc biệt đó thì chữ hoa chuyển thành chữ thường.

xét đến cuối chuỗi.

Thân.

P/S. chuyển chính xác như thế nào thì mình không nắm rõ toàn bộ, nhưng hình như là mã ký tự đó sẽ +- hằng số (32 thì phải) cái này phải tham khảo bảng mã bạn ạ.
 
Lần chỉnh sửa cuối:
connhangheo đã viết:
các bác cho em hỏi cách tạo ra hàm(hay thủ tục) proper như thế nào. Ý em là nếu giả sử như bây giờ trong excel ko có hàm proper thì mình sẽ tạo ra nó như thế nào. Thanks!

Thì đã có hàm UCase thay thế rồi.

Thân!
 
theo em nghĩ thì sẽ làm như sau
- đầu tiên tách chuỗi thành từng phần tử (dùng split ???)
- lưu các phần tử này vào 1 mảng (động)
- với mỗi phần tử của mảng sẽ dùng hàm Ucase như bác Bắp nói
- gộp các phần tử này lại thành 1 chuỗi (dùng join ???)
- cuối cùng là in ra chuỗi đó, thế là okei???
em nghĩ là như thế nhưng chưa thử, mong các bác chỉ giáo
 
Vậy là ý bạn hỏi là VIẾT HOA TOÀN BỘ, hay Viết Hoa Chữ Đầu?
 
Tôi nghĩ chúng ta tham khảo của bác Phamduylong là được mà.

Lê Văn Duyệt.
PS: Chú ý hàm UCase cho Unicode, hình như không được như ý đâu!
 
connhangheo đã viết:
các bác cho em hỏi cách tạo ra hàm(hay thủ tục) proper như thế nào. Ý em là nếu giả sử như bây giờ trong excel ko có hàm proper thì mình sẽ tạo ra nó như thế nào. Thanks!
Dựa vào bảng mã ASCII (ANSI) và bảng mã dùng cho tiếng Việt là tạo được hàm giống như hàm PROPER của M$ Excel thôi.
Bạn tham khảo đoạn code sau (mới chỉ dùng bảng mã ASCII nên tiếng Việt sẽ không chuẩn).
Mã:
Public Function [B][COLOR=red]Proper_GPE[/COLOR][/B](strText As String) As String
Dim i
Dim strSub As String
If Asc(Mid(strText, 1, 1)) >= 97 And Asc(Mid(strText, 1, 1)) <= 122 Then
    strSub = Chr(Asc(Mid(strText, 1, 1)) - 32)
Else
    strSub = Mid(strText, 1, 1)
End If
For i = 2 To Len(strText)
    Select Case Asc(Mid(strText, i, 1))
        Case Is = 10, 32 To 47, 58 To 64, 91 To 96, 123 To 126
            strSub = strSub & Mid(strText, i, 1)
        Case 65 To 90
            Select Case Asc(Mid(strText, i - 1, 1))
                Case Is = 10, 32 To 47, 58 To 64, 91 To 96, 123 To 126
                    strSub = strSub & Mid(strText, i, 1)
                Case Else
                    strSub = strSub & Chr(Asc(Mid(strText, i, 1)) + 32)
            End Select
        Case 97 To 122
            Select Case Asc(Mid(strText, i - 1, 1))
                Case Is = 10, 32 To 47, 58 To 64, 91 To 96, 123 To 126
                    strSub = strSub & Chr(Asc(Mid(strText, i, 1)) - 32)
                Case Else
                    strSub = strSub & Mid(strText, i, 1)
            End Select
        Case Else
            strSub = strSub & Mid(strText, i, 1)
    End Select
Next i
Proper_GPE = strSub
End Function
To Mr_Okebab:
Hàm Ucase trong VBA sao lại giống hàm Proper trong M$ Excel nhỉ????
 
Web KT

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

Back
Top Bottom