0

我正在使用下面的代码。它不是将数据逐行放入单元格中,而是将所有数据放入一个单元格中。附上图片供您参考。还附上了我正在阅读的示例文本文件。请注意,当我尝试在写字板中打开此文本文件并保存它时,它可以正常工作。

单击此处下载存在此问题的示例 txt 文件

此代码输出

 Sub Test_ReadFromTxtToArray()

 Dim FSO As Object, MyFile As Object
 Dim FileName As String, Arr As Variant

 FileName = "C:\Test\O0000540.txt" ' change this to your text file full name
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Set MyFile = FSO.OpenTextFile(FileName, 1)
 Arr = Split(MyFile.ReadAll, vbCrLf) ' Arr is zero-based array


 'For test
 'Fill column A from this Array Arr

 Sheet2.Range("A1").Resize(UBound(Arr) + 1, 1).Value = Application.Transpose(Arr)

End Sub
4

1 回答 1

0

碰巧您提供的下载文件LFEOL,因此您的Split方法不会拆分任何内容。

但是,如果您不知道 EOL 怎么办?

这应该有效:

S = MyFile.readall
 
 S = Replace(S, vbCrLf, vbLf)
 S = Replace(S, vbCr, vbLf)

 Arr = Split(S, vbLf)

换句话说,将可能存在的任何内容更改为已知的 EOL,然后对其进行拆分。您可能需要为 MAC 做一些不同的事情。

于 2020-06-23T10:30:47.643 回答