0

Why doesn't the "Like" statement work?

The "=" statement checks as true but the "like" operator checks as false, why?

Sub sandbox2()

Dim TagForm As String

TagForm = "tag(1###)<EX-->"

Debug.Print "Compare: " & Sheets(2).Cells(2, 2).Value & " To: " & TagForm

If Sheets(2).Cells(2, 2).Value = TagForm Then 'this works... displays message "Match!"
    MsgBox "Match!"
End If

If Sheets(2).Cells(2, 2).Value Like TagForm Then 'this does not work... Does not display "Match!"
    MsgBox "Match!"
End If

End Sub
Pᴇʜ
  • 56,719
  • 10
  • 49
  • 73
XCELLGUY
  • 179
  • 2
  • 12

2 Answers2

1

When using the like operator, # and - are both special characters.

To match the literal character #, add brackets around it, like [#]

See the full documentation here: https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/like-operator

Josh Eller
  • 2,045
  • 6
  • 11
1

You used the Like operator wrong. The # represents a single number digigt.

so you can compare the following:

Sub test()
    Dim a As String, b As String, c As String
    a = "tag(1###)<EX-->"
    b = "tag(1###)<EX-->"
    c = "tag(1000)<EX-->"

    Debug.Print b = a       'true
    Debug.Print b Like a    'false

    Debug.Print c = a       'false
    Debug.Print c Like a    'trua
End Sub

If you compare MyVar LIKE "tag(1###)<EX-->" then
MyVar can be anything from "tag(1000)<EX-->" to "tag(1999)<EX-->"

Pᴇʜ
  • 56,719
  • 10
  • 49
  • 73