簡體   English   中英

Excel VBA中的split命令在數組中的每個字符之間添加空格

[英]Split command in Excel VBA adding a space between every character in array

我正在讀取一個文本文件,並使用以下代碼在每個空格處拆分數據字符串。

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

但是,我返回的數組在文本文件的單個單元格中使用了例如文本文件中的“ Contact”一詞,並將其轉換為“ C ontact”(請參見下文),我不確定為什么。

VBA監視窗口中的數據輸出:

VBA監視窗口中的數據輸出

我嘗試使用

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

之后刪除空格,但這似乎並不是從我的數據刪除空格。 有什么想法可以防止代碼首先在每個字符之間添加空格?

然后,我需要檢查sl(1)sl(2)包含單詞“ Contact”和“ Stress”,但是當前無法滿足該條件,單元格包含“ C ontact”和“ S tress”,所以我更改了if循環以反映這一點,但條件仍不滿足。

另外,由於格式異常,我無法從String> Double轉換數據。

正如@LocEngineer在評論中指出的那樣,在更新生成我正在讀取的文本文件的外部軟件期間,文本編碼已更改為UTF-16,並且我的數據之間的其他字符為chr(0)來自ASCII表,而不是空格(ASCII中的chr(32))。

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

此代碼段解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM