如果VBA

时间:2015-05-05 08:18:46

标签: excel vba excel-vba

我已阅读此帖:Read/Parse text file line by line in 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

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

1 个答案:

答案 0 :(得分:3)

你需要重写文件, 换句话说:

  1. 打开input.txt输入
  2. 打开output.txt输出
  3. 写下与output.txt
  4. 不匹配的所有行
  5. 删除input.txt
  6. output.txt重命名为input.txt
  7. 在代码中:

    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"