簡體   English   中英

如何在 VBA 中循環打開當前文件夾中的所有 csv 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM