如何跳过txt文件中的一行

How can I skip one line in a txt file

我有一个名为 inFiletxt 文件。使用 VBA,我将其逐行复制到名为 outFile.

的新 txt 文件中

我有一个 Excel 作品sheet。在这个 sheet 中,我有一个字符串和一个数字。该数字是新字符串需要进入名为 outFile.

txt 的行

我的代码有 95% 有效。

我的问题: 在代码复制从 txt 调用 inFileoutFile 的行后,在我复制新的字符串从 Excel sheet 到右边的行。 当我返回将另一行从名为 inFiletxt 复制到名为 outFiletxt 时。 代码复制了我刚刚用新字符串替换的行。

我正在寻找一种在将行从 inFile 复制到 outFile 时跳过一行的方法。

P.S. cell(f,13) 是放置新字符串的行号的位置。 cell(f,17) 是应该放置新字符串的地方。

Sub Update_file()

    Dim FolderName As Double
    Dim data1, data2, IfExist, inFile, outFile As String
    Dim f As Integer
    Dim LineNumber As Long

    f = 2
    LineNumber = 0

    Do Until IsEmpty(Cells(f, 2))
        IfExist = "L:\" & Cells(f, 2) & "\COMPANY.bat"
            If Not Dir(IfExist) = "" Then                  
                inFile = "L:\" & Cells(f, 2) & "\COMPANY.bat"
                Open inFile For Input As #1                
                outFile = "L:\" & Cells(f, 2) & "\COMPANY_NEW.bat"
                Open outFile For Output As #2               
                    If Not IsEmpty(Cells(f, 11)) Then                
                        LineNumber = LineNumber + 1
                            If LineNumber = Cells(f, 13) Then
    'aaa:
                                data2 = Cells(f, 17)
                                Print #2, data2
                                LineNumber = LineNumber + 1
                                GoTo bbb
                            Else
                                Do Until EOF(1) Or Cells(f, 13) = LineNumber 
    'bbb:
                                Debug.Print LineNumber
                                Line Input #1, data1
                                data2 = Trim(data1)
                                Print #2, data2
                                LineNumber = LineNumber + 1                            
                                    If LineNumber = Cells(f, 13) Then
                                        GoTo aaa
                                    End If                        
                                Loop                        
                            End If                
                        End If                
                LineNumber = 0
                Close #1
                Close #2                
            Else: MsgBox "äçáøä " & Mid(inFile, 4, 5) & " ìà ÷ééîú"            
            End If    
        f = f + 1    
    Loop    

End Sub

如果我没理解错的话,你总是想写入文件#2;来自文件 #1 的行,或者来自 Cells(f, 17) 的行,如果我们在目标行号处。

为什么不只是这个呢?

inFile = "L:\" & Cells(f, 2) & "\COMPANY.bat"
Open inFile For Input As #1

outFile = "L:\" & Cells(f, 2) & "\COMPANY_NEW.bat"
Open outFile For Output As #2

If Not IsEmpty(Cells(f, 11)) Then
    LineNumber = LineNumber + 1

    Do Until EOF(1)
        Debug.Print LineNumber
        Line Input #1, data1
        data2 = Trim(data1)

        If LineNumber = Cells(f, 13) Then
            data2 = Cells(f, 17)
        End If

        Print #2, data2
        LineNumber = LineNumber + 1
    Loop
End If

LineNumber = 0

Close #1
Close #2