【发布时间】:2015-12-09 13:47:24
【问题描述】:
我在比较两个字符串时遇到了有趣的问题。我从文件中读取数据,一切正常。但是后来同事给我发了输入文件,它只是工作文件的 CTRL+C 和 CTRL+V。然后奇迹发生了! VBA 很困惑,无法比较两个简单的字符串,我从椅子上摔了下来。
如果您查看图像,您可以看到如果条件是两个相同的字符串,则比较通过了,但它不应该。我有点困惑这是怎么发生的。
所以遇到了这样的人?我真的开始考虑终结者的机器革命之类的东西。 (文件都保存在notepad++中,没有奇怪的字符或类似的东西)
进度更新
所以我尝试了下面 cmets 中的人的提示。并以这样的方式结束
If CStr(Trim(rowArray(4))) <> (CStr("N/A")) Then
rowArray(4) 的内容仍然是“N/A”字符串,如上图所示,excel 仍然认为这个字符串不一样。我还在 pspad、netbeans 和普通记事本中保存了文件,问题还是一样。
【问题讨论】:
-
请将您的代码嵌入到帖子中,而不是图片中,我们也看不到
rowArray(4)-"N/A"下方的内容,这对于解决问题可能很重要。 -
你试过
If CStr(rowArray(4)) <> CStr("N/A") Then吗? -
@ScottHoltzman 由于 rowArray(4) 变量的内容,我需要将其作为图片发送。其余代码并不重要,因为问题在条件
-
Notepad++ 中放入空白字符很麻烦 - 尝试使用
Trim(rowArray(4))看看是否得到相同的结果 -
@LubošSuk 只是为了查看它是否是另一个无法显示的字符 - 您是否尝试过在即时窗口中执行
?Len(rowArray(4))并确保您得到3作为结果?
标签: string vba excel string-comparison