VBA 字符串比较失败
VBA string comparison failure
我在比较两个字符串时遇到了一个有趣的问题。我从文件中读取数据,一切正常。但是后来同事给我发送了输入文件,这只是工作文件的 CTRL+C 和 CTRL+V。然后奇迹发生了! VBA 很困惑,无法比较两个简单的字符串,我摔倒了。
如果您看一下图片,您会发现如果条件是两个相同的字符串,则比较通过了,但它不应该通过。我有点困惑这是怎么发生的。
所以遇到这样的人?我真的开始考虑《终结者》中的机器革命之类的东西。 (文件都是用notepad++保存的,没有奇怪的字符之类的)
进度更新
所以我在下面的评论中尝试了一些人的提示。并以这样的方式结束
If CStr(Trim(rowArray(4))) <> (CStr("N/A")) Then
rowArray(4) 的内容仍然是 "N/A" 字符串,如上图所示,excel 仍然认为这个字符串不一样。我还在 pspad、netbeans 和普通记事本中保存了文件,问题仍然相同。
使用立即数window测试变量内容:
For i = 1 To Len(rowArray(4)): Print Asc(Mid(rowArray(4), i, 1)): Next
这将打印字符串中每个字符的 ASCII 值 - 您可以使用它来确定导致问题的额外字符。
我在比较两个字符串时遇到了一个有趣的问题。我从文件中读取数据,一切正常。但是后来同事给我发送了输入文件,这只是工作文件的 CTRL+C 和 CTRL+V。然后奇迹发生了! VBA 很困惑,无法比较两个简单的字符串,我摔倒了。
如果您看一下图片,您会发现如果条件是两个相同的字符串,则比较通过了,但它不应该通过。我有点困惑这是怎么发生的。
所以遇到这样的人?我真的开始考虑《终结者》中的机器革命之类的东西。 (文件都是用notepad++保存的,没有奇怪的字符之类的)
进度更新
所以我在下面的评论中尝试了一些人的提示。并以这样的方式结束
If CStr(Trim(rowArray(4))) <> (CStr("N/A")) Then
rowArray(4) 的内容仍然是 "N/A" 字符串,如上图所示,excel 仍然认为这个字符串不一样。我还在 pspad、netbeans 和普通记事本中保存了文件,问题仍然相同。
使用立即数window测试变量内容:
For i = 1 To Len(rowArray(4)): Print Asc(Mid(rowArray(4), i, 1)): Next
这将打印字符串中每个字符的 ASCII 值 - 您可以使用它来确定导致问题的额外字符。