Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2926|回复: 1

VBA获取指定目录下的文件名(包括文件夹名)

[复制链接]
发表于 2014-12-23 21:31 | 显示全部楼层 |阅读模式
用EXCEL VBA获取指定目录下的文件名(包括文件夹名)在网上看到的,觉得很好,所以拿来分享了
出处http://zhidao.baidu.com/link?url ... vT0n7oMLcbP-9s4gQm_
  1. Sub GetFoldersAndFiles()
  2.     Dim arr()
  3.     With Application.FileDialog(msoFileDialogFolderPicker)
  4.         .InitialFileName = "C:"
  5.         If .Show = True Then Path = .SelectedItems(1) & ""
  6.     End With
  7.     If Path = "" Then Exit Sub
  8.     MyName = Dir(Path, vbDirectory)  '查找目录
  9.         Do
  10.             If MyName <> "." And MyName <> ".." Then
  11.                 n = n + 1
  12.                 ReDim Preserve arr(1 To n)
  13.                 arr(n) = IIf((GetAttr(Path & MyName) And vbDirectory) = vbDirectory, "<" & MyName & ">", MyName)
  14.             End If
  15.             MyName = Dir
  16.         Loop While MyName <> ""
  17.     Sheet1.Range("A1").Resize(n, 1) = WorksheetFunction.Transpose(arr)
  18.     Sheet1.Range("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
  19.         OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
  20.         :=xlPinYin, DataOption1:=xlSortNormal
  21.    
  22. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2015-1-20 17:06 | 显示全部楼层
参考http://club.excelhome.net/forum. ... 563&pid=7045180

在Thisworkbook下粘贴如下代码
  1. Sub g1()

  2.     Dim fso, fl, m&
  3.     Set fso = CreateObject("Scripting.FileSystemObject")
  4.     For Each fl In fso.getfolder(CreateObject("Shell.Application").BrowseForFolder(0, "请选择文件夹", 0, "").Self.Path & "").Files
  5.        m = m + 1
  6.        Cells(m, 1) = fl.Name
  7.     Next

  8. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 16:49 , Processed in 0.227163 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表