当您使用Stream对象时,我认为很明显,但是,.LoadFromFile用整个文件内容填充当前流,并且没有任何自定义选项来从文件加载部分数据。
至于读取 1 行,您已经使用.ReadText(-2), (-2 = adReadLine) 完成了此操作。
Set objStream = CreateObject("ADODB.Stream")
objStream.Charset = "utf-8"
objStream.Type = 2
objStream.Open
'objStream.LoadFromFile = strFile ''I see a typo here
objStream.LoadFromFile strFile
objStream.LineSeparator = 10      ''that's Ok
'Do Until objStream.EOS           ''no need this
    strLine = objStream.ReadText(-2)
'Loop
objStream.Close ''add this though!
[编辑]好吧,对于.LineSeparator您只能使用 3 个常量:
Constant Value Description
adCRLF   -1    Default. Carriage return line feed 
adLF     10    Line feed only 
adCR     13    Carriage return only 
如果您需要拆分Do..Loop其他字母,这.ReadText是阅读文本流的唯一选择,您可以将其与InStr函数结合使用,Exit Do然后找到您的自定义分隔符。
Const cSeparator = "_" 'your custom separator
Dim strLine, strTotal, index
Do Until objStream.EOS
    strLine = objStream.ReadText(-2)
    index = InStr(1, strLine, cSeparator)
    If index <> 0 Then
        strTotal = strTotal & Left(strLine, index-1)
        Exit Do
    Else
        strTotal = strTotal & strLine
    End If
Loop
很快,这就是你可以做的全部优化(或者至少据我所知)。