IF-THEN在VBA中带有string

我想通过读取string的值来检查两个单元格的值是否相等。 使用for循环来查找IF-THEN语句的匹配。

当通过程序时,它显示的值是相同的一点,但IF – THEN比较只是继续运行我不明白为什么它不会停止时,他们是平等的。

Dim ws As Worksheet Dim lcol As Long Dim Val As String Dim Check As String 'Read in value for audit to continue Val = ContTextBox.Value 'Make Master Sheet Active Worksheets("Master").Activate Set ws = ThisWorkbook.Sheets("Master") 'Finds next empty column With ws lcol = .Cells(11, .Columns.Count).End(xlToLeft).Column + 1 End With 'i needs to be set to minimum limit 'Begin loop of search For j = 1 To lcol Check = Cells(11, j).Value If Check = Val Then Unload Me Assetlookup.Show End If Next j Unload Me 

两串如何“相同”? 一个是大写的,另一个不是? 是否有前/后零? 是否有不可打印的字符?

试试这个,在比较之前清理每个术语:

 If AllCleanedUp(Check) = AllCleanedUp(Val) Then 

其中涉及以下function:

 Function AllCleanedUp (DirtyString byVal) As String AllCleanedUp = Trim(Application.Clean(Lcase(DirtyString))) End Function