【发布时间】:2021-03-29 00:31:57
【问题描述】:
我有一个 txt 文件,我需要将它输入到一个字符串数组中,其中每一行是数组中的一项。
我以前使用过 vba,但从未编辑过 Word 和 Excel 以外的文件,所以这对我来说是新的。
以下是我的部分内容(从网上某处复制,所以我不太明白)
Sub TxtFileToArray(FilePath As String, LineArray As Variant, Optional Delimiter As String = vbCrLf)
'adapted from https://www.thespreadsheetguru.com/blog/vba-guide-text-files
Dim TextFile As Integer
Dim FileContent As String
'Open the text file in a Read State
TextFile = FreeFile
Open FilePath For Input As TextFile
'Store file content inside a variable
FileContent = Input(LOF(TextFile), TextFile)
'Close Text File
Close TextFile
它在FileContent = Input(LOF(TextFile), TextFile) 行上失败。错误信息是:
运行时错误“62”:
输入文件末尾
变量Textfile = 1 和LOF(Textfile) = 4480
我该怎么办?
编辑:
该文件充满了 xml 数据(它实际上是一个已转换为 .txt 的 .odc 文件)。我应该做些什么来将它全部转换为字符串?也许我可以以某种方式将它作为一个巨大的字符串导入,然后将其拆分为数组?
【问题讨论】:
-
您是否仔细检查过您的 txt 文件中没有任何“奇怪”的值,例如空格、错位的分隔符等?因为错误表明代码已到达文件末尾,但仍在寻找输入值。
-
该文件可能是二进制而不是文本,试试
Open FilePath For Binary Access Read As TextFile- 如果它有效,那么就是这样。 -
文件中充满了 xml 数据 - 有问题吗?这是否意味着它不会作为字符串打开?
-
@AlexK。你是对的,它有效!随意提交作为答案而不是评论,以便我可以正确接受它