首页 > 解决方案 > VBA Excel,当我从文本文件读取到(字符串)变量时,为什么它不读取回车和换行符(0d 0a)

问题描述

我正在研究一个从文本框中获取数据并将其写入文件的宏。数据包括回车/换行字符。在稍后阶段,我需要从文件中读取数据并将其以完全相同的形式放回文本框中。当我这样做时,缺少 Cr/Lf 字符 (0d 0a)。我已经确定它们被写入文件但没有读回。我正在使用以下代码段来编写文件:

Print #1, Temstg
Close #1

并使用以下代码段阅读它:


Do Until EOF(1)

    Line Input #1, T
    Temstg = Temstg & T
    
Loop
    
Close #1

我哪里错了

标签: excelvbafile

解决方案


如评论中所述,将Line Input换行符视为新行的分隔符。是文档。

以下代码一次性读取完整的文本文件,包括换行符。

Sub ReadFIle()
    Dim fileName As String: fileName = "C:\temp\yourfile.txt"
    
    Dim fileContent As String
    Dim File As Integer: File = FreeFile
    
    Open fileName For Input As #File
    fileContent = Input(LOF(File), File)
    
    Close #File
    
    ' example how to split the file in lines then
    Dim vDat As Variant
    vDat = Split(fileContent, vbNewLine)
    
End Sub

读取输入功能


推荐阅读