![](/img/trans.png)
[英]How to open all files in the folder (xls and csv format files) - VBA
[英]How to loop and open all csv files in my current folder in VBA
我在桌面上随机创建了一个新文件夹,在这个文件夹中我有一个扩展名为 .xlsm 的模板文件,其中包含我的 VBA 代码。 同时,我将几个 csv 文件与我的原始数据保存在同一个文件夹中。
目的是一个一个循环遍历所有这些 csv 文件,打开它,然后从中复制一些数据并粘贴到我的模板文件(我知道如何做这部分),并在所有操作完成后关闭它。
目前我遇到了一个关于如何遍历我的文件夹并一个一个打开那些 csv 的问题。 我没有设置特定的文件夹名称,因为我想与其他人共享使用它,因此我使用 Application.ActiveWorkbook.Path 来获取我当前文件夹的路径。
这是我的代码:
Option Explicit
Sub Range_End_Method()
Dim Dir As String
Dim i As String
Application.ScreenUpdating = False
Dir = Application.ActiveWorkbook.Path & "\"
For Each i In Dir.Files
Debug.Print i.Name
If (i.Name Like "*.csv") Then
Workbooks.Open (i.Path)
End If
Next
End Sub
我猜你想使用 Dir 函数。 要使用它,请调用它,在第一次调用中指定文件夹和文件类型,然后将其调用为空,直到它返回一个空字符串。 像这样:
Folder = Dir(Application.ActiveWorkbook.Path & "\*.csv")
Do While Folder <> ""
Debug.Print Folder
Workbooks.Open Folder
Folder = Dir()
Loop
您可以使用此函数和宏。 Juste 将 MsgBox (myFile + "OK") 替换为您要执行的操作。
功能
Function ClasseurOuvert(NomFich)
On Error Resume Next
Workbooks(NomFich).Activate
If Err <> 0 Then Workbooks.Open FileName:=NomFich
On Error GoTo 0
End Function
宏
Sub LoopFiles()
Dim myPath As String, myFile As String
myPath = Application.ActiveWorkbook.Path & "\"
myFile = Dir(myPath & "\*.*")
Do While myFile <> "" And myFile Like "*.csv"
Call ClasseurOuvert(myPath & "\" & myFile)
With Workbooks(myFile)
MsgBox (myFile + "OK")
End With
Workbooks(myFile).Save
Workbooks(myFile).Close
myFile = Dir()
Loop
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.