【发布时间】:2017-12-06 10:20:49
【问题描述】:
我正在读取一个文本文件并使用以下代码在每个空格处拆分数据字符串。
L = f.ReadLine
If L = "" Then GoTo errorpoint:
On Error GoTo errorpoint:
sl = Split(L, " ", -1)
但是,我返回的数组例如将文本文件中的单词“Contact”转换为我数组的单个单元格中的“C o n t a c t”(见下文),我不知道为什么.
VBA 观察窗口中的数据输出:
我尝试过使用
For i = 0 To UBound(sl)
sl(i) = Replace(sl(i), " ", "")
Next
之后删除空格,但这似乎并没有从我的数据中删除空格。有什么想法可以防止代码首先在每个字符之间添加空格吗?
然后我需要检查sl(1)和sl(2)是否分别包含“联系”和“压力”这两个词,但目前无法满足该条件,单元格包含“C o n t a c t”和“S t r e s s”,所以我更改了 if 循环以反映这一点,但仍然不满足条件。
此外,由于格式不寻常,我无法从 String > Double 转换我的数据。
【问题讨论】:
-
值得指出的是,我正在使用 excel VBA 调试菜单中的“添加手表”查看数组中的值。是否有可能我的数据实际上很好,但调试控制台以奇怪的方式显示?
-
那不行,我得到类型不匹配的错误。
-
让我猜猜:您的文本文件是 UTF-16 编码的。您的“联系人”实际上是“C[NULL]O[NULL]...”。然后您需要使用 FileSystemObject 读取文件并设置 TriState=True...
-
@LocEngineer 是的!谢谢你。在我的工作站上,我没有 Notepad++,所以我什至没有想到这个想法。但是我尝试从每个数组条目中删除 ASCII 空字符并解决了问题。