Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Excel VBA中的Split命令在数组中的每个字符之间添加空格_Arrays_Excel_Vba_Split - Fatal编程技术网

Arrays Excel VBA中的Split命令在数组中的每个字符之间添加空格

Arrays Excel VBA中的Split命令在数组中的每个字符之间添加空格,arrays,excel,vba,split,Arrays,Excel,Vba,Split,我正在读取一个文本文件,并使用以下代码在每个空间拆分数据字符串 L = f.ReadLine If L = "" Then GoTo errorpoint: On Error GoTo errorpoint: sl = Split(L, " ", -1) 然而,我得到的数组在文本文件中使用“Contact”一词,并在数组的单个单元格中将其转换为“conotact”(见下文),我不确定原因 VBA监视窗口中的数据输出: 我试过使

我正在读取一个文本文件,并使用以下代码在每个空间拆分数据字符串

 L = f.ReadLine
        If L = "" Then GoTo errorpoint:
            On Error GoTo errorpoint:
            sl = Split(L, " ", -1)
然而,我得到的数组在文本文件中使用“Contact”一词,并在数组的单个单元格中将其转换为“conotact”(见下文),我不确定原因

VBA监视窗口中的数据输出:

我试过使用

For i = 0 To UBound(sl)
     sl(i) = Replace(sl(i), " ", "")
Next
之后删除空格,但这似乎并不是从我的数据中删除空格。有没有办法阻止代码在每个字符之间添加空格

然后我需要检查
sl(1)
sl(2)
是否分别包含单词“Contact”和“Stress”,但当前无法满足该条件,单元格包含“coontact”和“stres”,因此我更改了if循环以反映这一点,但该条件仍然不满足


此外,我无法从String>Double转换我的数据,因为格式不正常

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


这个片段解决了这个问题

值得指出的是,我正在使用excel VBA调试菜单中的“添加监视”查看数组中的值。是否可能我的数据实际上很好,但在调试控制台中以一种奇怪的方式显示?这不起作用,我得到了类型不匹配错误。让我猜一下:您的文本文件是UTF-16编码的。您的“联系人”实际上是“C[NULL]O[NULL]…”。然后,您需要使用FileSystemObject读取文件,并设置TriState=True…@LocEngineer Yes!非常感谢。在我这里的工作站上,我没有记事本+,因此无法检查我是否有这种想法。但我尝试从每个数组条目中删除ASCII空字符,这就解决了问题。
For i = 0 To UBound(sl)
     sl(i) = Replace(sl(i), Chr(0), "")
Next