Nhờ giúp đỡ viết code VBA tách chuỗi ký tự trong ô

Liên hệ QC
Nhờ anh chị viết 1 đoạn code VBA: Để tách lấy những mã hàng tô đỏ trong một chuỗi như vậy(cột G) sang cột F- như trong ảnh ví dụ em để ở dưới ạ.
Trong ví dụ mã hàng em đang có tô đỏ, nhưng thực tế nó sẽ không có màu đỏ.
Quy luật các ký tự về mã hàng ở đây là :đứng ở cuối câu lấy lên , các ký tự được viết hoa..
Thân nhờ anh chị!
View attachment 289138
Dùng công thức được không?
Mã:
F2 =MID(G2,IFERROR(FIND(")",G2)+1,FIND("C",G2,2)),33)
 

File đính kèm

  • Tach ma hang.xlsx
    13.2 KB · Đọc: 9
Lần chỉnh sửa cuối:
Nhờ anh chị viết 1 đoạn code VBA: Để tách lấy những mã hàng tô đỏ trong một chuỗi như vậy(cột G) sang cột F- như trong ảnh ví dụ em để ở dưới ạ.
Trong ví dụ mã hàng em đang có tô đỏ, nhưng thực tế nó sẽ không có màu đỏ.
Quy luật các ký tự về mã hàng ở đây là :đứng ở cuối câu lấy lên , các ký tự được viết hoa..
Thân nhờ anh chị!
View attachment 289138
Góp vui:
Dùng hàm UDF
Mã:
Option Explicit

Function LayMa(ByVal Rng As Range) As String
Dim j&, k&
Dim S, Tmp, Temp
    S = Split(Rng, " ")
        Temp = S(UBound(S))
            For j = Len(Temp) To 1 Step -1
                Tmp = Mid(Temp, j, 1)
                If Tmp = UCase(Tmp) Then
                    If Tmp <> ")" Then
                        k = j
                    End If
                Else
                    Exit For
                End If
            Next j
    LayMa = Mid(Temp, k, Len(Temp))

End Function
F3=LayMa(G3) và nhấn enter
(kết quả dòng 20 (dong cuối) ra không đúng ý)
 
Dùng công thức được không?
Mã:
F2 =MID(G2,IFERROR(FIND(")",G2)+1,FIND("C",G2,2)),33)
Cảm ơn bạn!
Góp vui:
Dùng hàm UDF
Mã:
Option Explicit

Function LayMa(ByVal Rng As Range) As String
Dim j&, k&
Dim S, Tmp, Temp
    S = Split(Rng, " ")
        Temp = S(UBound(S))
            For j = Len(Temp) To 1 Step -1
                Tmp = Mid(Temp, j, 1)
                If Tmp = UCase(Tmp) Then
                    If Tmp <> ")" Then
                        k = j
                    End If
                Else
                    Exit For
                End If
            Next j
    LayMa = Mid(Temp, k, Len(Temp))

End Function
F3=LayMa(G3) và nhấn enter
(kết quả dòng 20 (dong cuối) ra không đúng ý)
cảm ơn bác!
 
Ủa là sao, nghĩa là sau này ai gặp trường hợp giống bác thì phải đăng bài mới thay vì tìm lại bài này trên diễn đàn hoặc google à?
Đăng bài hỏi cũng là 1 phần đóng góp nội dung cho diễn đạn thưa chủ thớt. Giờ thớt "quay xe" xóa nội dung đi thì có hơi...
 
Sửa lại hàm UDF đã đăng ở bài #3 (có chỗ kết quả ra sai so với mong muốn)
Mã:
Option Explicit

Function LayMa(ByVal Rng As Range) As String
Dim j&, k&, L&
Dim S, Tmp
    L = Len(Rng)
        For j = L To 1 Step -1
            Tmp = Mid(Rng, j, 1)
            If Tmp = ")" Then Exit For
            If Tmp = UCase(Tmp) Then
                    k = j
            Else
                Exit For
            End If
        Next j

LayMa = Mid(Rng, k, L + 1 - k)

End Function
 
Hô hô
Ăn ờ li vờ bồ
Bác @SA_DQ có hơi nặng lời đó nha!
Như em thì sẽ…nặng hơn.
 
Sửa lại hàm UDF đã đăng ở bài #3 (có chỗ kết quả ra sai so với mong muốn)
Mã:
Option Explicit

Function LayMa(ByVal Rng As Range) As String
Dim j&, k&, L&
Dim S, Tmp
    L = Len(Rng)
        For j = L To 1 Step -1
            Tmp = Mid(Rng, j, 1)
            If Tmp = ")" Then Exit For
            If Tmp = UCase(Tmp) Then
                    k = j
            Else
                Exit For
            End If
        Next j

LayMa = Mid(Rng, k, L + 1 - k)

End Function
Đề bài còn đâu mà sửa cho mất công anh ơi, người đọc sau này có biết anh viết cho cái gì mà còn lo đúng với sai vậy hả anh. Bao nhiêu công sức các thành viên hỗ trợ họ làm rụp một cái là xuống biển hết luôn.
 
Nước đi này hơi ác mà không ai có thể lường trước được, tại hạ xin bái phục
 
Mình đã nói nhiều lần rồi.
Thích thì cứ xoá thôi mà, rồi có người vào dọn dẹp cho sạch.
Không làm sao hết cả. Cái này có tiền lệ được chủ trương thực hiện rồi.
Có người quay cái bánh xe... xoá mấy chục bài / chủ đề có vấn đề gì đâu, vẫn nhăn răng... khoẻ re.
 
Chủ bài đăng đang vi phạm nội qui:
Trích nội qui diễn đàn:

V. Sở hữu thông tin:
1. Bài viết có sử dụng thông tin nơi khác phải . . . . .
2. Địa chỉ email của thành viên . . .
3. Bài viết được gửi lên Giải pháp Excel sẽ trở thành sở hữu của cộng đồng Giải pháp Excel. Chủ thể gửi bài không được tuỳ tiện xóa bài. . . . . . .
. . . .

Thôi ta đành nhờ/chờ các mods hay smod xử thôi.
 
Đề bài còn đâu mà sửa cho mất công anh ơi, người đọc sau này có biết anh viết cho cái gì mà còn lo đúng với sai vậy hả anh. Bao nhiêu công sức các thành viên hỗ trợ họ làm rụp một cái là xuống biển hết luôn.
Người ta đã nói mấy bài hỏi chỉ là tạo công ăn việc làm cho "ai rảnh quá, cả ngày KHÔNG có việc gì để làm [sic]".
Người khác hỏi thì càng thêm công ăn việc l;àm chứ mất mát gì.

Việc này gợi mình nhớ trước đây có người thẳng thắn đưa quan niệm là người hỏi tạo cơ hội cho người trả lời tích lũy công đức; và vì vậy người trả lời nên mang ơn người hỏi.
 
Đã xử lý như hình

1681798736159.png
 
Web KT
Back
Top Bottom