VBA:如何将string读入dynamic数组,其大小可以确定(按文本文件中的行数)

我很难find我如何读取正在阅读的文本文件中的行数,而无需再次打开文件。 在此先感谢您的时间。 如果您能够轻松地find我所说的话(我已经尽了我的尽职调查),我很抱歉。

Sub CreateMessage() Dim filepath As String ' Read filepath in spreadsheet filepath = Cells(6, 8) ' Parse string contents from script ' Open file Open filepath For Input As #1 

如何将文本文件的每一行读入一个dynamic数组,大小由文本文件中这一行的行数决定?

  ' Close file Close #1 End Sub 

如果你将它们读入一个数组中,你可以将当前最大的数组大小保存在一个variables中,并且在需要更多空间时使用ReDim (redimension)来扩展它。 ReDim会随时更改数组的大小,您可能需要确保一步一步完成,而不是一次一个。

就像(没有选中,所以你需要validation):

 option explicit option base 0 dim numlines as integer dim maxlines as integer numlines = 0 maxlines = 0 dim lines() as string for every line in file ' not actually valid syntax ' if numlines = maxlines then maxlines = maxlines + 100 redim preserve lines (maxlines) end if lines(numlines) = line numlines = numlines + 1 end for redim preserve lines (numlines) 

for循环实际上并不是有效的语法,但是它与用于重定义的方法没有关系。 您应该用您从文件中获取信息的任何代码来replace它。

你可以读整个文件然后使用

arr =分割(内容,vbcrlf)

获取数组。 假设它有典型的窗口行分隔符。