vba提取文件名(VBA 中如何用GetOpenFilename获取到文件名)

本文目录
- VBA 中如何用GetOpenFilename获取到文件名
- 用EXCEL VBA获取指定目录下的文件名(包括文件夹名)
- Excel 怎样用VBA提取图片文件名
- excel怎样用vba自动提取文件夹内的文件名
- vba提取文件名到excel
- vba获取路径下所有文件名和对应的文件路径,并且显示到下面表格中怎么做
- Excel VBA列出某文件夹下子文件夹及文件名
- excel vba如何获取所有打开的excel文件名
- 如何用vba将ppt或excel中嵌入的文件(如:我的文件.pdf)名称提取出来
- 如何利用vba代码批量提取文件名及修改日期到Excel表
VBA 中如何用GetOpenFilename获取到文件名
代码改一下
Private Sub CommandButton1_Click()
Dim strfile As String
strfile = Application.GetOpenFilename("所有文件(*.*),*.*")
If strfile = "False" Then’strfile定义的是String类型,无法与boolean类型的False比较
MsgBox ("未选择任何文档")
Exit Sub
Else ’If strfile 《》 False Then
MsgBox (strfile)
End If
End Sub
用EXCEL VBA获取指定目录下的文件名(包括文件夹名)
1.点开始菜单,就能看到上面的界面,选择“运行”!点了运行程序后,在里面输入“cmd”点击确定会进入命令提示符串口。
2.打个比方说,文件在C盘里面的111文件夹,要读取里面的文件的文件名字。
3.利用cd命令到达要读取文件名的文件夹,用法是这样的:命令为“cd c:\111”。
4.然后会看到下面的这个情况:
5.然后输入命令“dir /b》d:1.xls”然后回车。
6.到D盘就能看到一个名称为1.xls的文件。
7.打开就是了。
Excel 怎样用VBA提取图片文件名
Public Sub PicName()
Dim Pth As String
Dim Pic As String
ActiveSheet.Range("A1").Select ’选中激活窗口的A1
Pth = "C:\Users\Public\Pictures\Sample Pictures"
’路径,系统自带图片的地方
Pic = Dir(Pth & "\*.jpg") ’查看JPG格式的图片名称
Do While Pic 《》 ""
Selection = Pic ’赋值
Pic = Dir
Selection.Offset(1, 0).Select
Loop
End Sub
excel怎样用vba自动提取文件夹内的文件名
excel中用vba实现自动提取文件夹内的文件名的方法如下:
1、新建一个vba宏脚本
2、写入如下代码:
Function GetFileList(FileSpec As String) As Variant
’ Returns an array of filenames that match FileSpec
’ If no matching files are found, it returns False
Dim FileArray() As Variant
Dim FileCount As Integer
Dim FileName As String
On Error GoTo NoFilesFound
FileCount = 0
FileName = Dir(FileSpec)
If FileName = "" Then GoTo NoFilesFound
’ Loop until no more matching files are found
Do While FileName 《》 ""
FileCount = FileCount + 1
ReDim Preserve FileArray(1 To FileCount)
FileArray(FileCount) = FileName
FileName = Dir()
Loop
GetFileList = FileArray
Exit Function
’ Error handler
NoFilesFound:
GetFileList = False
End Function
3、传入文件路径就可以获取文件名到指定的excel表格中
4、结果:
vba提取文件名到excel
文章介绍excel中使用vba提取文件名的操作步骤。根据需要自行修改vba提取文件名的路径和存放单元格即可。
在excel中使用VBA编写代码,可以轻松的提取某个文件夹下面的所有文件名。
比如笔者在F盘下面建立了一个文件夹,文件夹的名称是:office教程网,现在想将“office教程网”这个文件夹下面的所有文件名提取出来放在当前工作表的C列。
具体的vba提取文件名的操作如下:
1.按下ALT+F11,打开VBE器。
2.执行“插入——模块”,插入模块1。
3.在右边的代码窗口,复制下面的代码,然后单击“绿色箭头”或者快捷键F5键,运行代码。
Private Sub vba提取文件名()
Dim FileName As String
Dim i As Long
FileName = Dir("F:\office教程网\*.*")
i = 0
Range("C:C").ClearContents
Do While FileName 》 ""
i = i + 1
Cells(i, 3) = FileName
FileName = Dir
Loop
End Sub
4.关闭VBE窗口,回到工作表中,可以在C列看到F盘“office教程网”文件夹下面所有的文件名全部罗列在C列了。
vba获取路径下所有文件名和对应的文件路径,并且显示到下面表格中怎么做
一、所需DOS命令
dir filename
二、应用实例
如下图,在D盘中,有一个名称为“TQIPC”的文件夹,这个文件夹里面,存放了很多的照片!
现在,我们要做的就是,如何让这些照片的名称,自动显示在Excel或记事本里面!
执行菜单操作“开始”→“运行”,弹出运行对话框,在里面输入 CMD 并按“确定”键,这个时候,会打开如下图的MS-DOS窗口!
之后,如下图一样,输入DOS命令即可!
上述的命令输入好之后,就按下回车键,命令就执行了,以上生成的是XLS文件;如果您想生成记事本TXT文件,那么,就输入下图的dos命令即可!
就这样,非常简单,文件名的列表文件,就形成了!如下图!
通过dos命令的操作,我们就得到了如上图的两个文件了。
下面我们打开temp.xls文件看看,如下图!
看到了没有,文件夹中的照片名称,自动就显示在excel表格中了!
该dos命令非常强大,用好dos命令,可省去我们很多的功夫。
三、知识扩展
下面,再给大家一个例子,即,自动根据照片(根据人物名称),建立文件夹。
如果某个文件夹下面,您存放的是某些人物的照片,并且,每个人物的照片,都使用其名字来命名;这个时候,如何要自动根据人物的自动建立其对应的文件夹,也相当方便!
操作的方法是,先根据上述的方法,获取所有人物的照片的名称,生成EXCEL文件;
然后,在人物名称列前面,插入一列,并输入MD;
接下来,使用查找替换功能,将excel文件中的人物名称,去掉扩展名(只保留名字);
最后,将excel的内容,复制粘贴到记事本中,现在,我们就得到了形如:“MD 人物名称” 这样的命令格式了。(md 文件名称,该命令格式,是使用来建立文件夹的命令,上述的操作,都是为此做准备!)
将记事本文件保存成为形如:124.bat格式的文件,最后,双击此文件,文件夹名称就自动建立好了!
Excel VBA列出某文件夹下子文件夹及文件名
遍历文件夹 并列出文件 & 文件夹 名 代码如下:
在文件夹内 新建 个 Excel文件
Excel文件内 按 Alt+F11 视图--代码窗口, 把如下代码复制进去, F5运行
Sub 遍历文件夹()
’On Error Resume Next
Dim fn(1 To 10000) As String
Dim f, i, k, f2, f3, x
Dim arr1(1 To 100000, 1 To 1) As String, q As Integer
Dim t
t = Timer
fn(1) = ThisWorkbook.path & "\"
i = 1: k = 1
Do While i 《 UBound(fn)
If fn(i) = "" Then Exit Do
f = Dir(fn(i), vbDirectory)
Do
If InStr(f, ".") = 0 And f 《》 "" Then
k = k + 1
fn(k) = fn(i) & f & "\"
End If
f = Dir
Loop Until f = ""
i = i + 1
Loop
’*******下面是提取各个文件夹的文件***
For x = 1 To UBound(fn)
If fn(x) = "" Then Exit For
f3 = Dir(fn(x) & "*.*")
Do While f3 《》 ""
q = q + 1
arr1(q, 1) = fn(x) & f3
f3 = Dir
Loop
Next x
ActiveSheet.UsedRange = ""
Range("a1").Resize(q) = arr1
MsgBox Format(Timer - t, "0.00000")
End Sub
效果如图:
excel vba如何获取所有打开的excel文件名
针对ThisWorkbook对象的BeforeClose事件添加如下代码
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim fileStr As String
fileStr = "$111.xls$333.xls$“ ‘头尾都用$分隔,循环判断文件名
For I = Workbooks.count To 1 Step -1
If InStr(fileStr, Workbooks(I).Name) 《》 0 Then
Workbooks(I).Close False ‘False是不保存关闭 true是保存并关闭
End If
Next
End Sub
关闭时就会遍历所有打开的excel文件,执行不保存操作,并关闭
如何用vba将ppt或excel中嵌入的文件(如:我的文件.pdf)名称提取出来
取不到文件名,我感觉文件名已经被转换为ICON了,我下面代码只能显示名字和类型:
Option Explicit
Sub 宏1()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Type = msoEmbeddedOLEObject Then MsgBox s.Name & Chr(10) & s.OLEFormat.progID
Next s
End Sub
是否显示为图标的两个对象显示都是一样的的结果:
如何利用vba代码批量提取文件名及修改日期到Excel表
程序代码:
Option Explicit
Sub YgB()
Dim p, i, fn
i = 1
p = "d:\doc\"
fn = Dir(p & "*.*")
While fn 《》 ""
Cells(i, 1) = fn
Cells(i, 2) = FileDateTime(p & fn)
i = i + 1
fn = Dir
Wend
End Sub
运行示例:

更多文章:
directive vue(如何在Vue中建立全局引用或者全局命令)
2026年5月6日 19:15
javaeclipse包的新建(用eclipse如何创建java工程)
2026年1月11日 08:30
c语言switch语句case后面接什么(c语言switch语句中case后面必须要接整型常量和字符型常量吗)
2025年10月26日 08:15
怎么把普通文件导入变成web项目(java项目怎么转成web项目)
2025年9月18日 16:00
在循环体内使用break语句(在循环结构中使用break语句,退出的是一层循环,还是多重循环呢可以给出一个简单且巧妙的例子吗)
2026年5月1日 00:00
position在css的属性(CSS中position属性详解)
2025年9月26日 23:45
amazed是什么牌子(amazing和amazed有什么区别)
2026年4月3日 15:00
周期函数值域的求法(已知函数的最小正周期为求;当时,求函数的值域.)
2025年11月30日 22:15
毕设做网站必须要用到ssm框架嘛(毕业设计做ssm还是app更难)
2026年3月31日 03:00
new directory(如何将威纶通tk6070ip触摸屏程序上传到电脑里)
2026年8月7日 01:45













