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

网上搜了段
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("C:\Users\Administrator\Desktop") '在括号内输入你指定的目录
Set fc = f.Files
i = 1
For Each f1 In fc
ComboBox4.AddItem f1.name
i = i + 1
s = s & f1.name(这句和下一句没看懂啥用)
s = s & vbCrLf
Next
但不能返回文件夹名

1.点开始菜单,就能看到上面的界面,选择“运行”!点了运行程序后,在里面输入“cmd”点击确定会进入命令提示符串口。

2.打个比方说,文件在C盘里面的111文件夹,要读取里面的文件的文件名字。

3.利用cd命令到达要读取文件名的文件夹,用法是这样的:命令为“cd c:\111”。

4.然后会看到下面的这个情况:

5.然后输入命令“dir /b>d:1.xls”然后回车。

6.到D盘就能看到一个名称为1.xls的文件。

7.打开就是了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-12

1、首先利用“Windows键+R”打开“运行”窗口

2、接着输入“cmd”并点击“打开”

3、比如是需要复制输出c盘下的Progam Data中的名字

4、在命令窗口中输入“cd c:\Progam Data”

5、点击“”后出现下面情况

6、然后输入“dir /b>d:21.xls”命令并点击“回车键”

7、接着就在D盘出现名称为21的一个

8、点击打开即可查看Progam Data中的文件夹名字都在Excel表格中,可以批量直接复制了

本回答被网友采纳
第2个回答  推荐于2017-09-17
s = s & f1.name(这句和下一句没看懂啥用)
s = s & vbCrLf
1.S赋值为S变量的值和f1.name变量的值 & 是 字符串连接符
2.S赋值为S变量的值和回车换行符 vbcrlf是VBA的常量相当于回车加换行

在sheet1的A列里是获得指定目录下的文件名包括指定目录下的文件夹名,目录名是用<>括起来的
Sub GetFoldersAndFiles()
Dim arr()
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\"
If .Show = True Then Path = .SelectedItems(1) & "\"
End With
If Path = "" Then Exit Sub
MyName = Dir(Path, vbDirectory) '查找目录
Do
If MyName <> "." And MyName <> ".." Then
n = n + 1
ReDim Preserve arr(1 To n)
arr(n) = IIf((GetAttr(Path & MyName) And vbDirectory) = vbDirectory, "<" & MyName & ">", MyName)
End If
MyName = Dir
Loop While MyName <> ""
Sheet1.Range("A1").Resize(n, 1) = WorksheetFunction.Transpose(arr)
Sheet1.Range("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal

End Sub本回答被提问者采纳
第3个回答  2018-04-21
搞屁,人家是要用脚本实现。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网