VBA中读取文件夹中文件的名称

示例:

具体步骤如下:

  1. 通过文件对话框( Application.GetOpenFilename() )让用户选择一个文件,将文件路径存储在变量 n 中。
  2. 使用字符串处理函数( InStrRev 、Mid 、Dir 、InStr 、Replace )来从文件路径中提取文件名,去除不必要的部分。
  3. 通过循环遍历指定目录中的所有文件,每次迭代处理一个文件名。
  4. 将提取的文件名逐行写入Excel工作表的列A,同时在第一行添加列头 "名称"。
Sub cc()
    Set a = ActiveSheet
    k = 2
    n = Application.GetOpenFilename()
    If Not (n = False) Then
        c = InStrRev(n, "/")
        m = Mid(n, 1, c)
        n_name = Dir(m)
        Do While n_name <> ""
            b = InStr(n_name, ".") - 1
            d = Replace(Mid(n_name, 1, b), "文件", "")
            a.Cells(k, 1) = d
            k = k + 1
            n_name = Dir
        Loop
        a.Cells(1, 1) = "名称"
    End If
End Sub

以下是代码的每一步解释:

  • 1. Set a = ActiveSheet: 这一行代码将当前激活的工作表赋值给变量 a ,以便稍后在该工作表上操作。
  • 2. k = 2: 这一行代码初始化变量 k 为2,用于跟踪将文件名写入的工作表的行号。通常,行号从2开始,以避免覆盖表头。
  • 3. n = Application.GetOpenFilename(): 这一行代码使用 Application.GetOpenFilename() 函数打开一个文件对话框,允许用户选择一个文件。选定的文件路径将存储在变量 n 中。
  • 4. If Not (n = False) Then: 这是一个条件语句,用于检查用户是否已经选择了文件。如果用户选择了文件,则继续执行下面的代码块。
  • 5. c = InStrRev(n, "/"): 这一行代码使用 InStrRev 函数查找反斜杠(/)的位置,以确定文件路径中的文件名的位置,并将其存储在变量 c 中。
  • 6. m = Mid(n, 1, c): 这一行代码使用 Mid 函数提取文件路径中的目录部分(不包括文件名),并将其存储在变量 m 中。
  • 7. n_name = Dir(m): 这一行代码使用 Dir 函数获取指定目录(存储在变量 m 中)中的第一个文件或文件夹的名称,并将其存储在变量 n_name 中。
  • 8. Do While n_name <> "": 这是一个循环,用于处理目录中的所有文件。循环会一直执行,直到 n_name 不再包含文件名时结束。
  • 9. b = InStr(n_name, ".") - 1: 这一行代码使用 InStr 函数查找文件名中的点(.)位置,以确定文件扩展名的位置,并将其存储在变量 b 中。注意,我们减去1是为了获取不包括点的文件名部分。
  • 10. d = Replace(Mid(n_name, 1, b), "文件", ""): 这一行代码提取文件名并使用 Replace 函数去除文件名中的 "文件" 字样(如果存在),然后将最终的文件名存储在变量 d 中。
  • 11. a.Cells(k, 1) = d: 这一行代码将提取到的文件名(存在变量 d 中)写入活动工作表的列A中的当前行(由变量 k 控制),实现逐行写入文件名。
  • 12. k = k + 1: 这一行代码将变量 k 增加1,以准备写入下一行的文件名。
  • 13. a.Cells(1, 1) = "名称": 最后一行代码将工作表的第一行的第一个单元格(即A1单元格)写入 "名称",作为列头,用于标识列中的内容是文件名。

以上内容目的是帮助用户从指定路径中提取文件名,并将它们整齐地记录在Excel工作表中,以便进行进一步的处理或记录文件清单。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值