【发布时间】:2015-08-11 13:51:01
【问题描述】:
我试图通过用字符串读取值来检查两个单元格的值是否彼此相等。使用 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
【问题讨论】:
-
字符串真的完全一样吗?有时,您会与其他人一起获得“隐形”字符。例如,
\r\n不会显示,而是字符串的一部分 -
正如@EngJon 所说的字符串不相等。您可以停止代码并将两个字符串转换为 ascii 代码或其他任何内容,然后再次检查它们。
-
您可能希望从两个单元格中修剪字符串,然后进行比较。
-
这些值是日期。所以工作表中有一个日期是 "07/29/91" ,然后当用户窗体出现时,它会询问要搜索的日期,所以我会输入相同的日期 "07/29/91" 。我在“Locals”工具栏中逐步查看它,它显示它们在视觉上是相同的,但我不确定它是否带有额外的字符。
标签: excel vba if-statement for-loop