因此,我正在寫一個Excel VBA程序,它將具有特定名稱的所有csv文件讀入工作簿上的不同工作表中。在調試模式下的公式與不同的值如果不是
正在讀取沒有問題的文件。問題出現在將數據從文件轉換到數組時,該數組旨在包含目錄中所有文件中的所有相關數據。
爲了讀取文件,並通過線分離,
我使用:
Do Until EOF(1)
Line Input #1, LineFromFile
lineitems = Split(LineFromFile, Chr(10))
再往下的模塊,我經過了LineItem到一個數據陣列時該行內的特定標準數據得到滿足。爲了清楚起見,表達式將文件行中的日期值與文件名稱上的日期標記進行比較。
ElseIf (Left(lineitems(Line), 8) = Right(Left(FileTime(FileNum), 6), 2) + "/" + Right(Left(FileTime(FileNum), 4), 2) + "/" + Left(FileTime(FileNum), 2)) Then
Proxy = CStr(lineitems(Line))
DataArray(InverterNumber - 1, m(InverterNumber - 1)) = Proxy
正如你可以看到,我添加了一個代理一步,試圖確保數據去跨越,都無濟於事。我還添加了一個故障安全,確保不空行進入DataArray中:
If Len(DataArray(InverterNumber - 1, m(InverterNumber - 1))) = Len(CStr(lineitems(Line))) Then
Test(InverterNumber - 1, m(InverterNumber - 1)) = Len(DataArray(InverterNumber - 1, m(InverterNumber - 1)))
m(InverterNumber - 1) = m(InverterNumber - 1) + 1
End If
現在,如果我運行該程序在它的發行工作方法,它將返回一系列空列,這是不應該的因爲故障安全。 但是,當我通過調試模式運行它時,如果我觀察該步驟,它會正確添加數據。
有沒有什麼辦法可以確保值被正確翻譯?
有什麼我可以做得更好嗎?
你能否提供完整的模塊,因爲你的問題會導致任何人想要回答的很多假設?添加一些將由您的代碼分析的示例字符串。在你插入一些數組到其他數組(DataArray(InverterNumber - 1,m(InverterNumber - 1)),我們看不到它們是如何構建的? – mtholen
你可以從這個保存箱文件夾下載編譯器和文件: https://www.dropbox.com/sh/9sph17eyc2m0gq3/AACunecHXcqpMBAiP5CUEvUJa?dl=0 – Voz