我正在開發一個VBA應用程序,我想要打開一個CSV文件,獲取某行的內容並將其存儲在一個字符串中。我有它的工作,但它似乎是一個蠻力的方法,我覺得應該有一個更優雅的方式來做比加載每一行,直到我想要我的字符串。從VBA的文本文件中檢索行
Dim RowCount As Long
Dim CurrentLine As Long
Dim objFSO, objFile
Const ForReading = 1
RowCount = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(FileName, ForReading) 'Open specified file
CurrentLine = 0 'Start with line "0"
Message = objFile.ReadLine 'Read contents of first line
Do While CurrentLine < EventNumber 'If the current line being examined is not the specified line
CurrentLine = CurrentLine + 1 'Increment the current line counter
Message = objFile.ReadLine 'And copy the specified line to the Message string
Loop 'And repeat
objFile.Close 'Close the file when done
任何人都可以提出更好的方法嗎?
此外 - 如果我加載的條目太長,我會遇到麻煩嗎?它需要多長時間?在PLC編程世界中,標準字符串是82個字符,這是否也適用於VBA?
不用擔心字符串長度。我認爲它可能是16,384,但不確定。不幸的是,一個CSV文件是連續的,因此你需要閱讀,直到你找到你想要的行。如果它是一個非常大的文件,並且您大致知道文件中的哪個位置,則可以嘗試並獲得創意,並將其視爲一個隨機文件,但這有它自己的一套問題。 – 2014-12-02 03:20:13