将宏放入更大的子目录中

将宏放入更大的子目录中

我正在尝试将一次性使用的宏放入 Do Until 循环中,该宏将循环遍历文件夹中的文件。我无法编辑宏来实现此目的。我知道我需要将文件路径变量、文件前缀变量、合并我的计数以及文件类型“.dat”集成到脚本中。任何有关语法或简化我的庞大宏的提示都将不胜感激。

Sub CSV_Import()
Dim ws As Worksheet, strFile As String

Set ws = ActiveWorkbook.Sheets("Sheet1")
'set to current worksheet name

strFile = Application.GetOpenFilename("All Files (*.*),*.*", , "Please selec text file...")

With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
 .TextFileParseType = xlDelimited
 .TextFileCommaDelimiter = True
 .Refresh
End With
End Sub

谢谢你的时间。

答案1

您可以尝试使用 将当前代码包装在这样的循环中Dir。我无法测试该ws.queryTables.Add位,但该Dir位确实适当地循环遍历指定文件夹中的文件。这也假设您想要指定文件夹中的所有 .dat 文件。

Sub CSV_Import()
Dim ws As Worksheet, strFile As String

Set ws = ActiveWorkbook.Sheets("Sheet1")
'set to current worksheet name

strFile = Dir("\path\to\file\*.dat")
Do While Len(strFile) > 0
    With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .Refresh
    End With
    'Debug.Print strFile
    strFile = Dir
Loop
End Sub

相关内容