Hỗ trợ hàm UDF thay thế X thành x, MM thành mm

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Tình nghĩa giang hồ

Thanh sơn bất cải, lục thủy trường lưu
Tham gia
29/9/20
Bài viết
330
Được thích
429
Chào anh chị GPE.
Em có một số dữ liệu cần thay đổi chữ X hoa thành x thường, và MM hoa thành mm thường
Dữ liệu này có chung một kiểu nhận dạng:

Number + X + number + X + number + MM
VD: 38X2400X17MM sẽ chuyển thành 38x2400x17mm
Nếu dữ liệu này nằm ở vị trị cuối cùng thì em xử lý được.
Nhưng trường hợp như 4, 5, 6 hay 10, 11, 12, 13 ở trong hình thì dữ liệu nó không nằm ở vị trí cuối cùng thì em không xử lý được.
Nhờ anh chị xem giúp em trường hợp này.
Em cảm ơn anh chị.

Code xử lý khi dữ liệu ở vị trí cuối cùng.
Mã:
Function Thay_doi_GT_MM_va_X(chuoi As String)
Dim list
list = Split(chuoi, " ")
list(UBound(list)) = Replace(Replace(list(UBound(list)), "MM", "mm"), "X", "x")
Thay_doi_GT_MM_va_X = Join(list, " ")
End Function
 

File đính kèm

  • X-MM.PNG
    X-MM.PNG
    312.7 KB · Đọc: 23
  • X thành x MM thành mm.xlsb
    14.2 KB · Đọc: 21
Code với Regex

Function TDGTMM(chuoi As String) As String
With CreateObject("VBScript.RegExp")
.Pattern = "([0-9]+)X([0-9]+)X([0-9]+)MM"
.Global = True
.IgnoreCase = True
TDGTMM = .Replace(chuoi, "$1x$2x$3mm")
End With
End Function

Chú ý: code chỉ có tính cách minh họa. Nếu dùng Function thì phải Reference Regex và dùng kết nối sớm để tránh VBA phải dùng hàm CreateObject cho mỗi lần gọi Function.
 
Upvote 0
Web KT

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

Back
Top Bottom