![](/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.