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

我读过这篇文章: 在VBA中逐行读取/parsing文本文件 。 这篇文章告诉你如何从文本文件中读取一行。 但是,我需要读一行,并检查它是否包含一个数字,如果是这样,我需要删除行并保存文本文件。

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 

我可以读取这行,并检查它是否包含一个数字。 但我不知道如何删除行并保存文本文件。 需要一些指导。

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

  1. input时打开input.txt
  2. 打开output.txt输出
  3. 将所有不匹配的行写入output.txt
  4. 删除input.txt
  5. output.txt重命名为input.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"