如何转换多个txt文件并将它们保存为excel

时间:2016-05-24 05:31:02

标签: excel-vba vba excel

我在特定文件夹中有几个txt文件,我想通过对列进行txt将这些文件转换为excel。然后,我想通过删除txt文件并仅保留excel文件将excel文件单独保存在同一文件夹中。 我需要可以执行此操作的VBA代码,也可以通过过滤A列中的空白并删除所有空白。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

尝试这个***记住改变文件夹名称(spath)!****:

Sub getTextFiles()

Dim spath As Variant
Dim sfile As Variant
Dim lc As Variant
Dim txtBook As Workbook
Dim x As Variant
Dim saveName As String

Application.DisplayAlerts = False

'IMPORTANT!!!!!
'Set path to folder where you keep the text files
spath = "C:\test\"

'Loop through all text files in the folder
sfile = Dir(spath & "*.txt")

Do While sfile <> ""

    'Open the text file
    Set txtBook = Workbooks.Open(spath & sfile)

    'Text to Columns - comma separated
    txtBook.Sheets(1).Columns(1).TextToColumns Destination:=txtBook.Sheets(1).Cells(1, 1), DataType:=xlDelimited, _
    Tab:=False, Semicolon:=False, Comma:=True, Space:=False, Other:=False

    'Find last row with data
    lc = txtBook.Sheets(1).Cells(txtBook.Sheets(1).Rows.Count, "a").End(xlUp).Row

    'Loop through all rows in column "A" and delete the row if cell is blank
    For x = lc To 1 Step -1
        If txtBook.Sheets(1).Cells(x, 1) = "" Then txtBook.Sheets(1).Cells(x, 1).EntireRow.Delete
    Next x

    'Save file as xlsx and close it

    'File name without the ".txt" part
    saveName = Left(sfile, Len(sfile) - 4)

    txtBook.SaveAs Filename:=spath & saveName, FileFormat:=51, CreateBackup:=False
    txtBook.Close


    Set txtBook = Nothing

    'Delete old text file
    Kill spath & sfile

    'Get another file
    sfile = Dir()

Loop

Application.DisplayAlerts = True

End Sub