Lấy một chuỗi số trong một text - sử dụng hàm find() và mid()

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài
Khi post câu hỏi thì em chỉ mong được chén món bình dân, không ngờ lại được chén sơn hào hải vị, he he!

Bác @bebo021999 chỉ nốt cho em nếu trường hợp chữ ID không phải là chữ hoa (mà là chữ thường) thì phải thêm gì vào dòng code kia không ạ?
Thì bạn tự vọc xem sao:
thay ID thành id, sau đó trong code mình thử các phương án, xem kết quả nó ra cái gì

InStr(1, cell, "ID")
InStr(1, cell, "ID",1)
InStr(1, cell, "ID",0)
InStr(1, cell, "id")
InStr(1, cell, "id",1)
InStr(1, cell, "id",0)

Từ đó mình sẽ nhớ lâu hơn.
 
Em vừa hỏi thằng ChatGPT thì nó đề xuất như thế này. Sau đó em nhét vào excel có vẻ chưa ổn :)))

Mã:
Function TimID(ByVal cell As Range, Optional num As Integer)
    Dim i&, id As String, st As String
    If StrComp("ID", Mid(UCase(cell), InStr(1, UCase(cell), "ID") + 2, 2)) <> 0 Then
        TimID = "Khong tim thay"
        Exit Function
    End If
    st = Replace(Replace(Mid(cell, InStr(1, cell, "ID") + 2, 255), " ", ""), ".", "")
    For i = 1 To Len(st) - num + 1
        id = Mid(st, i, num)
        If IsNumeric(id) Then
            TimID = id
            Exit Function
        End If
    Next
End Function
 
Sao cái Instr trên có Ucase mà cái Instr thứ 2 không có? Thử lại xem nào
Cám ơn bác! Giờ em đã hiểu thuốc fugacar diệt giun như thế nào! :)))

Mã:
'Ham tim so ID by bebo021999 edit by Wanderman 

Option Explicit
Function TimID(ByVal cell As Range, Optional num As Integer)
Dim i&, id As String, st As String
If InStr(1, UCase(cell), "ID") = 0 Then
    TimID = "" 'Em muon no de trang khi khong co id trong chuoi
    Exit Function
End If
st = Replace(Replace(Mid(cell, InStr(1, UCase(cell), "ID") + 2, 255), " ", ""), ".", "")
For i = 1 To Len(st) - num + 1
    ij = Mid(st, i, num)
    If IsNumeric(id) Then
        TimID = id
        Exit Function
    End If
Next
End Function
 
Bác @bebo021999 cho em hỏi giờ "ID" em muốn là 1 biến của hàm TimID thì làm thế nào ạ? VD cú pháp của hàm là: =TimID("ID",B2,7) chả hạn?
 
Bác @bebo021999 cho em hỏi giờ "ID" em muốn là 1 biến của hàm TimID thì làm thế nào ạ? VD cú pháp của hàm là: =TimID("ID",B2,7) chả hạn?
OK
=TimID("ID",B2,7)
PHP:
Option Explicit
Function TimID(ByVal ID As String, cell As Range, Optional num As Integer)
Dim i&, st As String, st2 As String
If InStr(1, UCase(cell), ID) = 0 Then
    TimID = ""
    Exit Function
End If
st = Replace(Replace(Mid(cell, InStr(1, UCase(cell), ID) + 2, 255), " ", ""), ".", "")
For i = 1 To Len(st) - num + 1
    st2 = Mid(st, i, num)
    If IsNumeric(st2) Then
        TimID = st2
        Exit Function
    End If
Next
End Function
 
Web KT

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

Back
Top Bottom