如果VBA中存在数字,如何删除txt文件中的一行

lak*_*esh 1 excel vba

我已经阅读了这篇文章:在 VBA 中逐行读取/解析文本文件。这篇文章告诉你如何从文本文件中读取一行。但是,我需要读取一行并检查它是否包含数字,如果包含,我需要删除该行并保存文本文件。

While Not EOF(FileNum)
    Line Input #FileNum, DataLine
    If FindValue(DataLine) Then
        'Stuck here.
    End If
Wend

End Sub

Function FindValue(ByVal DataLine As Variant) As Boolean
    For Index = 0 To NoOfLiquidatedDeals - 1
        pos = InStr(DataLine, NoOfLiquidatedDealsArray(Index))
        If pos > 0 Then
            FindValue = True
        End If
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

我可以阅读该行并检查它是否包含数字。但我不确定如何删除该行并保存文本文件。需要一些指导。

Uri*_*ren 6

您需要重新编写文件,换句话说:

  1. 打开input.txt输入
  2. 打开output.txt输出
  3. 写出所有不匹配的行 output.txt
  4. 删除 input.txt
  5. 重命名output.txtinput.txt

在代码中:

Open "input.txt" For Input as #1
Open "output.txt" For Output as #2
While Not EOF(#1)
    Input #1, DataLine
    If Not FindValue(DataLine) Then
        Print #2,DataLine
    End If
Wend
Close #2
Close #1
Kill "input.txt"
Name "output.txt" As "input.txt"
Run Code Online (Sandbox Code Playgroud)