Excel VBA中带字符串的IF-THEN

Excel VBA中带字符串的IF-THEN,excel,vba,if-statement,for-loop,Excel,Vba,If Statement,For Loop,我试图通过读取带有字符串的值来检查两个单元格的值是否相等。使用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 '

我试图通过读取带有字符串的值来检查两个单元格的值是否相等。使用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 AllCleanedUp (DirtyString byVal) As String

    AllCleanedUp = Trim(Application.Clean(Lcase(DirtyString)))

End Function

这两个字符串有多“相同”?一个是大写的,另一个不是?是否有前导/尾随零?是否有不可打印的字符

尝试此操作,在比较每个术语之前先清除它们:

If AllCleanedUp(Check) = AllCleanedUp(Val) Then

指的是以下功能:

Function AllCleanedUp (DirtyString byVal) As String

    AllCleanedUp = Trim(Application.Clean(Lcase(DirtyString)))

End Function

这两个字符串有多“相同”?一个是大写的,另一个不是?是否有前导/尾随零?是否有不可打印的字符

尝试此操作,在比较每个术语之前先清除它们:

If AllCleanedUp(Check) = AllCleanedUp(Val) Then

指的是以下功能:

Function AllCleanedUp (DirtyString byVal) As String

    AllCleanedUp = Trim(Application.Clean(Lcase(DirtyString)))

End Function

这两个字符串有多“相同”?一个是大写的,另一个不是?是否有前导/尾随零?是否有不可打印的字符

尝试此操作,在比较每个术语之前先清除它们:

If AllCleanedUp(Check) = AllCleanedUp(Val) Then

指的是以下功能:

Function AllCleanedUp (DirtyString byVal) As String

    AllCleanedUp = Trim(Application.Clean(Lcase(DirtyString)))

End Function


字符串真的完全相同吗?有时,你会和其他人一起得到“看不见的”角色。例如,
\r\n
不会显示,但它是字符串的一部分,因为@EngJon说字符串不相等。您可以停止代码并将两个字符串转换为ascii码或任何其他格式,然后再次检查。您可能需要从两个单元格中修剪字符串,然后进行比较。值为日期。因此,工作表中有一个日期是“07/29/91”,当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”。我在“Locals”工具栏中查看它,它在视觉上显示它们是相同的,但我不确定它是否带有额外的字符。字符串真的完全相同吗?有时,你会和其他人一起得到“看不见的”角色。例如,
\r\n
不会显示,但它是字符串的一部分,因为@EngJon说字符串不相等。您可以停止代码并将两个字符串转换为ascii码或任何其他格式,然后再次检查。您可能需要从两个单元格中修剪字符串,然后进行比较。值为日期。因此,工作表中有一个日期是“07/29/91”,当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”。我在“Locals”工具栏中查看它,它在视觉上显示它们是相同的,但我不确定它是否带有额外的字符。字符串真的完全相同吗?有时,你会和其他人一起得到“看不见的”角色。例如,
\r\n
不会显示,但它是字符串的一部分,因为@EngJon说字符串不相等。您可以停止代码并将两个字符串转换为ascii码或任何其他格式,然后再次检查。您可能需要从两个单元格中修剪字符串,然后进行比较。值为日期。因此,工作表中有一个日期是“07/29/91”,当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”。我在“Locals”工具栏中查看它,它在视觉上显示它们是相同的,但我不确定它是否带有额外的字符。字符串真的完全相同吗?有时,你会和其他人一起得到“看不见的”角色。例如,
\r\n
不会显示,但它是字符串的一部分,因为@EngJon说字符串不相等。您可以停止代码并将两个字符串转换为ascii码或任何其他格式,然后再次检查。您可能需要从两个单元格中修剪字符串,然后进行比较。值为日期。因此,工作表中有一个日期是“07/29/91”,当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”。我在“Locals”工具栏中查看时看到了它,它在视觉上显示它们是相同的,但我不确定它是否带有额外的字符。字符串应该是相同的,因为它们只是使用了一个日期。因此,工作表中有一个日期是“07/29/91”,然后当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”,我最后只使用If Trim(check)=Trim(Val),然后工作。字符串应该是相同的,因为它们只使用了一个日期。因此,工作表中有一个日期是“07/29/91”,然后当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”,我最后只使用If Trim(check)=Trim(Val),然后工作。字符串应该是相同的,因为它们只使用了一个日期。因此,工作表中有一个日期是“07/29/91”,然后当用户表单出现时,它会要求搜索日期,因此我会输入相同的日期“07/29/91”,我最后只使用If Trim(check)=Trim(Val),然后工作。字符串应该是相同的,因为它们只使用了一个日期。因此,工作表中有一个日期是“07/29/91”,当用户表单出现时,它会要求搜索日期,所以我会在同一个日期中输入“07/29/91”,我只使用If Trim(check)=Trim(Val),然后就可以了