我正在尝试将一次性使用的宏放入 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