首页 > 解决方案 > 如何在VBA中循环并打开我当前文件夹中的所有csv文件

问题描述

我在桌面上随机创建了一个新文件夹,在这个文件夹中我有一个扩展名为 .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

标签: excelvba

解决方案


我猜你想使用 Dir 函数。要使用它,请调用它,在第一次调用中指定文件夹和文件类型,然后调用它为空,直到它返回一个空字符串。像这样:

Folder = Dir(Application.ActiveWorkbook.Path & "\*.csv")
Do While Folder <> ""
    Debug.Print Folder
    Workbooks.Open Folder
    Folder = Dir()
Loop

推荐阅读