Dùng công thức được không?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
F2 =MID(G2,IFERROR(FIND(")",G2)+1,FIND("C",G2,2)),33)
Góp vui: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
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
Cảm ơn bạn!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ác!Góp vui:
Dùng hàm UDF
F3=LayMa(G3) và nhấn enterMã: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
(kết quả dòng 20 (dong cuối) ra không đúng ý)
/(/ên hiểu chuyện này thế nào đây, nếu không phải là 'Ăn cháo đái bát'?Bài viết đã xong! Thân ái cảm ơn anh chị!
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.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
"Qua cầu rút......thăm trúng thưởng" chăng?Như em thì sẽ…nặng hơn.
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. . . . . . .
. . . .
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]".Đề 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.
Hơi sai. Lần trước có người nhận lỗi và xin lỗi.Anh làm thế này thành ra xác nhận BQT diễn đàn làm việc theo 2 tiêu chuẩn, 2 thước đo rồi.
Sao bạn lại xài số nhiều làm vậy?. . . . . . . .
Trường hợp này, họ rất lịch sự anh nhé.
Chính đó là chỗ chết tiệt hơn. Mà thôi, đừng bàn nữa. Bàn nữa ngỡ ra là còn ấm ức trong lòng hàng 10 năm không nguôiTrước, họ 'mất'... lịch sự.
Trường hợp này, họ rất lịch sự anh nhé.