当我计算文本的行时,为什么结果为1?

时间:2018-06-08 12:14:54

标签: excel excel-vba count line vba

最初,我在A列(excel)中有一个文本文件名列表,我想查看所有文件以打开并计算其行数。当我在下面运行脚本时,计数器的结果是' 1 '

当我使用Notepad ++或Sublime Text打开文本文件时,我会在不同的行中看到该文件的行。但是当我用记事本打开文件时,我会在一行中看到整个文本。在这种情况下有什么问题,我该如何解决它。 (分界线是' LF '。)

Sub counting()

    Dim FilePath As String
    Dim counter As Integer
    Dim curLine As String

    FilePath = "C:\Users\kornel.fekete\Desktop\test\Test.txt"

    Open FilePath For Input As #1

    Do While Not EOF(1)
        counter = counter + 1
        Line Input #1, curLine
    Loop

    Cells(1, 1).Value = counter

    Close #1

End Sub

我必须使用100多个文本文件进行计数。

1 个答案:

答案 0 :(得分:2)

您可以使用文字流:

Sub counting()

    Dim fso As New FileSystemObject
    Dim ts As TextStream
    Dim longtext As String
    Dim lines As Variant

    Set ts = fso.OpenTextFile("C:\Users\kornel.fekete\Desktop\test\Test.txt", ForReading, False)
    longtext = ts.ReadAll
    ts.Close
    lines = Split(longtext, vbLf)
    Cells(1, 1) = UBound(lines) - LBound(lines) + 1

End Sub

您需要设置对Microsoft Scripting Runtime的引用。