Học Ms excelKỹ năng vi tính

VBA Excel Xây dựng hàm chuyển chuỗi có dấu thành không dấu, khoản trắng thành dấu –

Giaoan.link chia sẻ đến các bạn một hàm trên VBA Excel dùng để chuyển chuỗi có dấu thành không dấu, khoản trắng thành dấu – . Ví dụ, bạn có chuỗi Huỳnh Minh Trung, khi áp dụng hàm sẽ chuyển thành “HUYNH-MINH-TRUNG”. Mục đích dùng trong các trường hợp cần bỏ dấu tiếng việt và không có khonar trắng như đặt tên file, folder…

Dưới đây là video demo và code vba, bạn sử dụng trong project

Function bodauvakhoantrang(ByVal sIn As String) As String
    Dim i As Long, j As Long
    Dim combCodes As Variant
    Dim findCodes As Variant
    Dim replaceChars As Variant
    Dim invalidChars As Variant

    ' 0) Chuy?n m?t s? ch? hoa d?c bi?t v? ch? thu?ng
    sIn = Replace(sIn, ChrW(&H110), ChrW(&H111))    ' Ð ? d
    sIn = Replace(sIn, ChrW(&HC2), ChrW(&HE2))      ' Â ? â
    sIn = Replace(sIn, ChrW(&HCA), ChrW(&HEA))      ' Ê ? ê
    sIn = Replace(sIn, ChrW(&H102), ChrW(&H103))    ' A ? a
    sIn = Replace(sIn, ChrW(&HD4), ChrW(&HF4))      ' Ô ? ô
    sIn = Replace(sIn, ChrW(&H1A0), ChrW(&H1A1))    ' O ? o
    sIn = Replace(sIn, ChrW(&H1AF), ChrW(&H1B0))    ' U ? u

    ' 1) Lo?i b? các d?u t? h?p Unicode
    combCodes = Array(&H300, &H301, &H302, &H303, &H306, &H309, &H31B, &H323)
    For j = LBound(combCodes) To UBound(combCodes)
        sIn = Replace(sIn, ChrW(combCodes(j)), "")
    Next j

    ' 2) Danh sách ký t? có d?u (c? ch? thu?ng và ch? hoa)
    findCodes = Array( _
      &HE0, &HE1, &H1EA3, &HE3, &H1EA1, _
      &HE2, &H1EA7, &H1EA5, &H1EA9, &H1EAB, &H1EAD, _
      &H103, &H1EAF, &H1EB1, &H1EB3, &H1EB5, &H1EB7, _
      &H111, _
      &HE8, &HE9, &H1EC7, &HEB, &H1EBB, _
      &HEA, &H1EC1, &H1EBF, &H1EC3, &H1EC5, &H1EC7, _
      &HEC, &HED, &H1EC9, &H129, &H1ECB, _
      &HF2, &HF3, &H1ECF, &HF5, &H1ECD, _
      &HF4, &H1ED3, &H1ED1, &H1ED5, &H1ED7, &H1ED9, _
      &H1A1, &H1EDD, &H1EDB, &H1EDF, &H1EE1, &H1EE3, _
      &HF9, &HFA, &H1EE7, &H169, &H1EE5, _
      &H1B0, &H1EEB, &H1EE9, &H1EED, &H1EEF, &H1EF1, _
      &H1EF3, &HFD, &H1EF7, &H1EF9, &H1EF5, _
      &H1EA6, &H1EA4, &H1EA8, &H1EAA, &H1EAC, &H1EA2, &H1EAE, &H1EB0, &H1EB2, &H1EB4, &H1EB6, _
      &H1EB8, &H1EBA, &H1EBC, &H1EBE, &H1EC0, &H1EC2, &H1EC4, &H1EC6, _
      &H1EC8, &H1ECA, &H1ECC, &H1ECE, &H1ED0, &H1ED2, &H1ED4, &H1ED6, &H1ED8, _
      &H1EDA, &H1EDC, &H1EDE, &H1EE0, &H1EE2, _
      &H1EE6, &H1EE4, &H1EE8, &H1EEA, &H1EEC, &H1EEE, &H1EF0, _
      &H1EF2, &H1EF4, &H1EF6, &H1EF8 _
    )
    replaceChars = Array( _
      "a", "a", "a", "a", "a", _
      "a", "a", "a", "a", "a", "a", _
      "a", "a", "a", "a", "a", "a", _
      "d", _
      "e", "e", "e", "e", "e", _
      "e", "e", "e", "e", "e", "e", _
      "i", "i", "i", "i", "i", _
      "o", "o", "o", "o", "o", _
      "o", "o", "o", "o", "o", "o", _
      "o", "o", "o", "o", "o", "o", _
      "u", "u", "u", "u", "u", _
      "u", "u", "u", "u", "u", "u", _
      "y", "y", "y", "y", "y", _
      "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", _
      "e", "e", "e", "e", "e", "e", "e", "e", _
      "i", "i", "o", "o", "o", "o", "o", "o", "o", _
      "o", "o", "o", "o", "o", _
      "u", "u", "u", "u", "u", "u", "u", _
      "y", "y", "y", "y" _
    )

    ' 3) Thay th? các ký t? có d?u
    For j = LBound(findCodes) To UBound(findCodes)
        sIn = Replace(sIn, ChrW(findCodes(j)), replaceChars(j))
    Next j

    ' 4) Chuy?n thành ch? hoa
    sIn = UCase(sIn)

    ' 5) Thay kho?ng tr?ng b?ng d?u g?ch ngang
    sIn = Replace(sIn, " ", "-")

    ' 6) Lo?i b? ký t? d?c bi?t không h?p l?
    invalidChars = Array("\", "/", ":", "*", "?", """", "<", ">", "|")
    For i = LBound(invalidChars) To UBound(invalidChars)
        sIn = Replace(sIn, invalidChars(i), "")
    Next i

    bodauvakhoantrang = sIn
End Function





giaoanppt

Giaoan.link trang chia sẽ giáo án điện tử, bài giảng powerpoint, template powerpoint, nguyên liệu làm bài giảng, tài liệu, biểu mẫu miễn phí!