繁体   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