使用VBA从文本文件中检索行

时间:2014-12-02 02:48:35

标签: vba csv

我正在开发一个VBA应用程序,我想打开一个CSV文件,获取某一行的内容,并将其存储在一个字符串中。我已经有了它的工作,但它似乎是一种蛮力的方法,我觉得应该有一个更优雅的方式,而不是加载每一行,直到我想要我的字符串。

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?

1 个答案:

答案 0 :(得分:1)

CSV文件是否有标题行?您可以使用CreateObject("ADODB.Connection")执行类似where EventNumber = something

之类的SQL查询

检查出来:querying csv with vbs