我如何逐行读取文本文件并使用 VBA 放入 excel sheet 单元格?读取行不起作用
How can i read a text file line by line and put into excel sheet cell using VBA? Read line is not working
我正在使用以下代码。它不是将数据逐行放入单元格中,而是将所有数据放入一个单元格中。附上图片供您参考。还附上了我正在阅读的示例文本文件。
请注意,当我尝试在写字板中打开此文本文件并保存时,它工作正常。
Click here to download sample txt file that is having this issue
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
碰巧您提供的下载文件有 LF
作为 EOL
,所以您的 Split
方法没有分割任何东西。
但是如果您不知道 EOL 怎么办?
这应该有效:
S = MyFile.readall
S = Replace(S, vbCrLf, vbLf)
S = Replace(S, vbCr, vbLf)
Arr = Split(S, vbLf)
换句话说,将可能存在的任何内容更改为已知的 EOL,然后拆分。
您可能需要为 MAC.
做一些不同的事情
我正在使用以下代码。它不是将数据逐行放入单元格中,而是将所有数据放入一个单元格中。附上图片供您参考。还附上了我正在阅读的示例文本文件。 请注意,当我尝试在写字板中打开此文本文件并保存时,它工作正常。
Click here to download sample txt file that is having this issue
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
碰巧您提供的下载文件有 LF
作为 EOL
,所以您的 Split
方法没有分割任何东西。
但是如果您不知道 EOL 怎么办?
这应该有效:
S = MyFile.readall
S = Replace(S, vbCrLf, vbLf)
S = Replace(S, vbCr, vbLf)
Arr = Split(S, vbLf)
换句话说,将可能存在的任何内容更改为已知的 EOL,然后拆分。 您可能需要为 MAC.
做一些不同的事情