Giúp lấy chuỗi nằm trước một chuỗi !

Mong GPE giúp tôi lấy chuỗi nằm trước chuỗi :
Code này do tiền bối HieuCD giúp tôi lấy chuỗi đằng sau chuỗi, tuy nhiên giờ tôi muốn lấy chuỗi nằm trước chuỗi có sẵn, nếu trước chuỗi có sẵn không có chuỗi nào thì không có lỗi xảy ra. mong GPE giúp đỡ tôi, xin cảm ơn!

Public Function FindNhac(Rng As Range, Txt As String, Optional Col As Boolean = False) As String
  Dim I As Long, Tmp As String
  Txt = Application.Trim(Txt)
  For I = 1 To Rng.Rows.Count
    Tmp = Application.Trim(Rng(I, 1))
    If UCase(Txt) & " " Like "*" & UCase(Tmp) & " *" Then
      If Col = False Then
        FindNhac = Rng(I, 1)
      Else
        FindNhac = Right(Txt, Len(Txt) - InStr(UCase(Txt), UCase(Tmp)) - Len(Tmp))
      End If
      Exit Function
    End If
  Next I
End Function
=FindNhac($E$6:$E$41,H6)
=FindNhac($E$6:$E$41,H6,1)

Câu trả lời tốt nhất:
Cảm ơn Tiền bối HieuCD

Option Explicit
Public Function FindNhac(Rng As Range, Txt As String, Optional Col As Integer = 0) As String
  Dim i As Long, Tmp As String
  Txt = Application.Trim(Txt)
  For i = 1 To Rng.Rows.Count
    Tmp = Application.Trim(Rng(i, 1))
    If UCase(Txt) Like "*" & UCase(Tmp) & "*" Then
      If Col = 0 Then
        FindNhac = Trim(Rng(i, 1))
      ElseIf Col = 1 Then FindNhac = Trim(Right(Txt, Len(Txt) - InStr(UCase(Txt), UCase(Tmp)) - Len(Tmp) + 1))
      ElseIf Col = -1 Then FindNhac = Trim(Left(Txt, InStr(UCase(Txt), UCase(Tmp)) - 1))
      End If
      Exit Function
    End If
  Next i
End Function
=FindNhac(E6:E21,H6,-1)
=FindNhac(E6:E21,H6)
=FindNhac(E6:E21,H6,0)
=FindNhac(E6:E21,H6,1)

Bạn thêm dòng lệnh FindNhac = "#Error" trước End Function thử xem.

Public Function FindNhac(Rng As Range, Txt As String, Optional Col As Boolean = False) As String
  Dim I As Long, Tmp As String
  Txt = Application.Trim(Txt)
  For I = 1 To Rng.Rows.Count
    Tmp = Application.Trim(Rng(I, 1))
    If UCase(Txt) & " " Like "*" & UCase(Tmp) & " *" Then
      If Col = False Then
        FindNhac = Rng(I, 1)
      Else
        FindNhac = Right(Txt, Len(Txt) - InStr(UCase(Txt), UCase(Tmp)) - Len(Tmp))
      End If
      Exit Function
    End If
  Next I
  FindNhac = "#Error"
End Function

www.giaiphapexcel.com/diendan/threads/gi%C3%BAp-l%E1%BA%A5y-chu%E1%BB%97i-n%E1%BA%B1m-tr%C6%B0%E1%BB%9Bc-m%E1%BB%99t-chu%E1%BB%97i.124747/post-781209

thử code mới

Option Explicit
Public Function FindNhac(Rng As Range, Txt As String, Optional Col As Integer = 0) As String
  Dim i As Long, Tmp As String
  Txt = Application.Trim(Txt)
  For i = 1 To Rng.Rows.Count
    Tmp = Application.Trim(Rng(i, 1))
    If UCase(Txt) Like "*" & UCase(Tmp) & "*" Then
      If Col = 0 Then
        FindNhac = Trim(Rng(i, 1))
      ElseIf Col = 1 Then FindNhac = Trim(Right(Txt, Len(Txt) - InStr(UCase(Txt), UCase(Tmp)) - Len(Tmp) + 1))
      ElseIf Col = -1 Then FindNhac = Trim(Left(Txt, InStr(UCase(Txt), UCase(Tmp)) - 1))
      End If
      Exit Function
    End If
  Next i
End Function

thử các công thức

=FindNhac(E6:E21,H6,-1)
=FindNhac(E6:E21,H6)
=FindNhac(E6:E21,H6,0)
=FindNhac(E6:E21,H6,1)

www.giaiphapexcel.com/diendan/threads/gi%C3%BAp-l%E1%BA%A5y-chu%E1%BB%97i-n%E1%BA%B1m-tr%C6%B0%E1%BB%9Bc-m%E1%BB%99t-chu%E1%BB%97i.124747/post-781221

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
Chia sẻ: