Excel VBA中的拆分命令在数组中的每个字符之间添加一个空格

时间:2017-12-06 10:20:50

标签: arrays excel vba split

我正在阅读文本文件并使用以下代码在每个空格处拆分数据字符串。

 L = f.ReadLine
        If L = "" Then GoTo errorpoint:
            On Error GoTo errorpoint:
            sl = Split(L, " ", -1)

然而,我回来的数组,例如,文本文件中的“Contact”一词,并在我的数组的单个单元格中将其变为“C ontact”(见下文),我不知道为什么。

VBA观察窗口中的数据输出:

Data Output in VBA Watch Window

我尝试过使用

For i = 0 To UBound(sl)
     sl(i) = Replace(sl(i), " ", "")
Next

之后删除空格,但似乎没有从我的数据中删除空格。任何想法如何阻止代码在每个字符之间添加空格?

然后我需要检查sl(1)sl(2)是否分别包含“联系人”和“压力”字样,但目前无法满足该条件,单元格包含“C ontact”和“S”发辫“,所以我改变了if循环来反映这一点,但仍未满足条件。

另外,我无法从String>转换我的数据。看起来是因为不寻常的格式化而加倍。

1 个答案:

答案 0 :(得分:1)

正如@LocEngineer在评论中指出的,在更新产生我正在阅读的文本文件的外部软件期间,文本编码已更改为UTF-16,我的数据之间的其他字符为chr(0) ASCII表中的空值,而不是空格(ASCII中的chr(32))。

For i = 0 To UBound(sl)
     sl(i) = Replace(sl(i), Chr(0), "")
Next

这个片段解决了这个问题。