使用VBA批量转换TXT到XLS

时间:2015-07-09 00:00:23

标签: excel vba excel-vba batch-file text

我正在尝试使用VBA将.txt文件的目录转换为.xls。我使用以下代码:

    Sub TXTconvertXLS()


    'Variables
    Dim wb As Workbook
    Dim strFile As String
    Dim strDir As String

    'Directories
    strDir = "\\xx\xx\xx\xx\Desktop\Test\Test1\"
    strFile = Dir(strDir & "*.txt")

    'Loop
    Do While strFile <> ""
        Set wb = Workbooks.Open(strDir & strFile)
            With wb
                .SaveAs Replace(wb.FullName, ".txt", ".xls"), 50
                .Close True
            End With
        Set wb = Nothing
    Loop


    End Sub

问题是:当我运行它时,它立即声明已经有一个文件,其名称是它试图在目录中保存。它显示的名称甚至有一个.xls扩展名,即使目录中肯定没有.xls也没有!任何帮助将不胜感激 - 谢谢!

1 个答案:

答案 0 :(得分:3)

您似乎在strFile = Dir之前遗失了Loop。没有它,您将重新处理相同的TXT文件。

    Do While strFile <> ""
        Set wb = Workbooks.Open(strDir & strFile)
            With wb
                .SaveAs Replace(wb.FullName, ".txt", ".xls"), 50
                .Close False   '<-already saved in the line directly above
            End With
        Set wb = Nothing
        strFile = Dir   '<- stuffs the next filename into strFile
    Loop

请参阅Dir Function