用EXCEL VBA获取指定目录下的文件名(包括文件夹名)
网上搜了段Dimfs,f,f1,fc,sSetfs=CreateObject("Scripting.FileSystemObject")Setf=fs.GetFolder...
网上搜了段
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
但不能返回文件夹名 展开
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
但不能返回文件夹名 展开
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用茗童的回答:
1.点开始菜单,就能看到上面的界面,选择“运行”!点了运行程序后,在里面输入“cmd”点击确定会进入命令提示符串口。
2.打个比方说,文件在C盘里面的111文件夹,要读取里面的文件的文件名字。
3.利用cd命令到达要读取文件名的文件夹,用法是这样的:命令为“cd c:\111”。
4.然后会看到下面的这个情况:
5.然后输入命令“dir /b>d:1.xls”然后回车。
6.到D盘就能看到一个名称为1.xls的文件。
7.打开就是了。
1.点开始菜单,就能看到上面的界面,选择“运行”!点了运行程序后,在里面输入“cmd”点击确定会进入命令提示符串口。
2.打个比方说,文件在C盘里面的111文件夹,要读取里面的文件的文件名字。
3.利用cd命令到达要读取文件名的文件夹,用法是这样的:命令为“cd c:\111”。
4.然后会看到下面的这个情况:
5.然后输入命令“dir /b>d:1.xls”然后回车。
6.到D盘就能看到一个名称为1.xls的文件。
7.打开就是了。
展开全部
搞屁,人家是要用脚本实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询