使用VBA在Excel中打开多个文件的ASCII文件-循环在同一输出文件中运行,而不是在下一个文件中运行

使用VBA在Excel中打开多个文件的ASCII文件-循环在同一输出文件中运行,而不是在下一个文件中运行,excel,vba,excel-formula,Excel,Vba,Excel Formula,我在一个文件夹中有多个ascii文件。我想用分隔符逗号打开每个ascii文件,然后我想做一些操作并将文件保存为Excel工作簿,而不覆盖ascii文件。像这样需要对许多文件做ascii文件使用宏。有人帮我写excel宏代码吗 在循环中,需要打开ascii文件并执行“我的工作”,然后将文件保存为Excel文件,保存在final文件夹中。然后实际读取文件中的下一个ascii文件 但是我的代码是打开第一个ascii文件来完成我的工作,然后 另存为新的Excel文件。它不是打开下一个ascii文件,而是

我在一个文件夹中有多个ascii文件。我想用分隔符逗号打开每个ascii文件,然后我想做一些操作并将文件保存为Excel工作簿,而不覆盖ascii文件。像这样需要对许多文件做ascii文件使用宏。有人帮我写excel宏代码吗

在循环中,需要打开ascii文件并执行“我的工作”,然后将文件保存为Excel文件,保存在final文件夹中。然后实际读取文件中的下一个ascii文件

但是我的代码是打开第一个ascii文件来完成我的工作,然后 另存为新的Excel文件。它不是打开下一个ascii文件,而是 正在对保存的Excel文件执行作业

Sub ProcessFiles()
    Dim Filename, Pathname As String
    Dim wb As Workbook
    
    Pathname = ThisWorkbook.path & "\files\"
    Filename = Dir(Pathname)
    Do While Filename <> ""
            
        Call Workbooks.OpenText(Filename:=Pathname & Filename, DataType:=xlDelimited, Comma:=True)
            
        Set wb = ActiveWorkbook
        DoWork wb
                   
        wb.SaveAs Filename:=wb.path & "\final\" & wb.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=True
        wb.Saved = True
        wb.Close
        'wb.Close SaveChanges:=True
        'Filename = Dir(Pathname & "*.xlsx")
        
    Loop
    
    MsgBox "Successfully Completed. Developed By Siddhu"
    
End Sub
    
Sub DoWork(wb As Workbook)
    With wb
        
       
    myjob goes here in each file      
            
      
    End With
End Sub
子进程文件()
Dim文件名,路径名为字符串
将wb设置为工作簿
路径名=ThisWorkbook.path&“\files\”
Filename=Dir(路径名)
文件名“”时执行此操作
调用Workbooks.OpenText(文件名:=路径名和文件名,数据类型:=xlDelimited,逗号:=True)
设置wb=ActiveWorkbook
销钉wb
wb.SaveAs文件名:=wb.path&“\final\”&wb.Name&“.xlsx”,文件格式:=xlOpenXMLWorkbook,CreateBackup:=False,冲突解决:=True
wb.Saved=True
wb.关闭
'wb.Close SaveChanges:=True
'Filename=Dir(路径名和“*.xlsx”)
环
MsgBox“成功完成。由Siddhu开发”
端接头
子工作(wb作为工作簿)
与wb
我的工作在每个文件中都放在这里
以
端接头

你需要做这样的事情

Sub ProcessFiles()
    Dim Filename, Pathname As String
    Dim wb As Workbook
    
    Pathname = ThisWorkbook.path & "\files\"
    Filename = Dir(Pathname)
    Do While Filename <> ""
            
        Call Workbooks.OpenText(Filename:=Pathname & Filename, DataType:=xlDelimited, Comma:=True)
            
        Set wb = ActiveWorkbook
        DoWork wb
                   
        wb.SaveAs Filename:=wb.path & "\final\" & wb.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=True
        wb.Saved = True
        wb.Close
        'wb.Close SaveChanges:=True
        'Filename = Dir(Pathname & "*.xlsx")
         
        Filename = Dir     `<=== this will go to the next file in the directory  
    Loop
    
    MsgBox "Successfully Completed. Developed By Siddhu"
    
End Sub
子进程文件()
Dim文件名,路径名为字符串
将wb设置为工作簿
路径名=ThisWorkbook.path&“\files\”
Filename=Dir(路径名)
文件名“”时执行此操作
调用Workbooks.OpenText(文件名:=路径名和文件名,数据类型:=xlDelimited,逗号:=True)
设置wb=ActiveWorkbook
销钉wb
wb.SaveAs文件名:=wb.path&“\final\”&wb.Name&“.xlsx”,文件格式:=xlOpenXMLWorkbook,CreateBackup:=False,冲突解决:=True
wb.Saved=True
wb.关闭
'wb.Close SaveChanges:=True
'Filename=Dir(路径名和“*.xlsx”)

Filename=Dir`您至少应该发布您的尝试。人们可能会在这方面帮助你,但这里的人不太可能只是为你做这项工作。如果你能在代码中找出事情没有按预期发展的地方,那就更好了。很抱歉,就我个人而言,我不能帮助您,因为我不是一个真正的Excel宏专家:-/,但我相信还会有其他人。VTC,没有问题,也没有提示代码可能有问题。这不是一个问题我提到了我的问题@Storax