⑴ EXCEL VBA 获取文件夹及子文件夹下所有文件并建立超链接
还没有解决吗?那我就来试一下。
(1)首先,楼主先新建一个excel,名称楼主自己写,怎样都行,然后将其打开。
(2)打开后按住Alt再按F11,这样就会打开vba代码编辑器
(3)点菜单栏上的“插入”,选择“模块”,这样在左下角就会出现一个“模块1”
(4)双击“模块1”,右边就会出现“模块1”的编辑界面,将以下代码复制,并粘贴到这个界面中,按F5运行。
Sub遍历文件夹()
'Columns(1).Delete
OnErrorResumeNext
DimfAsString
Dimfile()AsString
Dimi,k,x
x=1
i=1:k=1
ReDimfile(1Toi)
file(1)=InputBox("请输入要查找的文件夹:")&""
DoUntili>k
f=Dir(file(i),vbDirectory)
DoUntilf=""
IfInStr(f,".")=0Then
k=k+1
ReDimPreservefile(1Tok)
file(k)=file(i)&f&""
EndIf
f=Dir
Loop
i=i+1
Loop
Fori=1Tok
f=Dir(file(i)&"*.*")
DoUntilf=""
'Range("a"&x)=f
Range("a"&x).Hyperlinks.AddAnchor:=Range("a"&x),Address:=_
file(i)&f,TextToDisplay:=f
x=x+1
f=Dir
Loop
Next
EndSub
(5)在出现的对话框中,将你要查找的文件的地址复制到对话框中,按确定,就完成了。
注:这里用的是excel2007版,如果楼主用的是其他版本,有可能存在代码不兼容问题。
图3.结果。
⑵ 用EXCEL VBA获取指定目录下的文件名(包括文件夹名)
1、首先利用快捷键“Windows键+R”打开“运行”窗口
⑶ access vba 如何获取当前数据库文件的路径
应该是FullName获得路径,Name是获得文件名
MsgBox CurrentDb.FullName
⑷ vba读取指定文件夹的所有文件夹
“当前路径”指的是什么的当前路径?
在Office应用程序(如Word或Excel等)中当前打开的文档所在的路径?还是Office这个应用程序所在的路径。
如果传入一个“”,好象默认是返回“我的文档”中的第一个文档。所以那个.classPath可能就是你机器上“我的文档”中的第一个文件的文件名。
下面这个函数用MsgBox显示给定目录下的所有文件名:
Function EnumAllFiles(strPathName As String)
Dim strFileName As String
strFileName = Dir(strPathName & "*.*")
While strFileName <> ""
If MsgBox("文件名是 " & strFileName & ". 是否继续枚举?", vbDefaultButton1 Or vbYesNoCancel Or vbQuestion) <> vbYes Then Exit Function
strFileName = Dir
Wend
End Function
⑸ vba获取路径下所有文件名和对应的文件路径,并且显示到下面表格中。怎么做
一、所需DOS命令
dir [drive:][path] /b > [drive:][path]filename
二、应用实例
如下图,在D盘中,有一个名称为“TQIPC”的文件夹,这个文件夹里面,存放了很多的照片!
看到了没有,文件夹中的照片名称,自动就显示在excel表格中了!
该dos命令非常强大,用好dos命令,可省去我们很多的功夫。
三、知识扩展
下面,再给大家一个例子,即,自动根据照片(根据人物名称),建立文件夹。
如果某个文件夹下面,您存放的是某些人物的照片,并且,每个人物的照片,都使用其名字来命名;这个时候,如何要自动根据人物的自动建立其对应的文件夹,也相当方便!
操作的方法是,先根据上述的方法,获取所有人物的照片的名称,生成EXCEL文件;
然后,在人物名称列前面,插入一列,并输入MD;
接下来,使用查找替换功能,将excel文件中的人物名称,去掉扩展名(只保留名字);
最后,将excel的内容,复制粘贴到记事本中,现在,我们就得到了形如:“MD人物名称”这样的命令格式了。(md 文件名称,该命令格式,是使用来建立文件夹的命令,上述的操作,都是为此做准备!)
将记事本文件保存成为形如:124.bat格式的文件,最后,双击此文件,文件夹名称就自动建立好了!
⑹ VBA如何获取当前EXCEL文件的路径
1、首先打开Excel数据表,在开发工具中打开VBA编辑器。
⑺ word vba 获取文件位置
代码示例:
Sub showpath()
'1、获取当前文档的路径和文件名
aa = ThisWorkbook.Path '当前文件的路径
bb = ThisWorkbook.Name '当前文件的名称
cc = ThisWorkbook.FullName '当前文件的路径+名称
'2、在本示例中,EXCEL打开文件对话框,允许用户选择一个或多个文件,选中这些文件之后,逐条显示每个文件的路径
Dim ingcount As Long
With Application.FileDialog(msoFileDialogOpen) '提供文件对话框,允许用户打开文件
.AllowMultiSelect = True '允许用户从文件对话框中选择多个文件,false表示不允许选择多个文件
.Show '显示对话框
For ingcount = 1 To .SelectedItems.Count '从1到选中的文件数目循环
MsgBox .SelectedItems(ingcount) '显示文件的全路径
Next ingcount
End With
End Sub
补充:FileDialog说明
'提供文件对话框,返回一个FileDialog对象,该对象代表文件对话框的实例。
语法: expression.FileDialog (FileDialogType)
说明:
'expression 必需。该表达式返回"应用于"列表中的对象之一。
'FileDialogType 必需。MsoFileDialogType类型,文件对话框的类型。
MsoFileDialogType可以为以下常量之一:
msoFileDialogFilePicker 允许用户选择文件
msoFileDialogFolderPicker 允许用户选择一个文件夹
msoFileDialogOpen 允许用户打开文件, 用EXCEL打开
msoFileDialogSaveAs 允许用户保存一个文件
⑻ EXCEL如何使用VBA打开相对路径下的文件或文件夹
打开文件如下:
Workbooks.Open ("C:对账单对帐单.xlsx")
这里你可以把“C:对账单”换成你的绝对路径,
你可以用:a = ThisWorkbook.Path
a = ThisWorkbook.Path
Workbooks.Open ("" & a & "&" "&对帐单.xlsx")
来获取你当前表的绝对路径,然后再打开,因为不知道你的具体情况,如果有问题可以hai我
如果当前文件夹下还有A文件夹可以用代码:
Workbooks.Open ("" & a & "&" A"&b.xlsx")
⑼ VBA中怎么遍历所选路径中所有文件夹及其子文件夹(多个子文件),并返回所有的最底层的文件夹路径
答:执行"获取所有文件夹",按提示操作。文件夹清单会显示在工作表的AB列中。
Sub获取所有文件夹()
DimDirectoryAsString
WithApplication.FileDialog(msoFileDialogFolderPicker)
.InitialFileName=Application.DefaultFilePath&""
.Title="请选择一个文件夹"
.Show
If.SelectedItems.Count=0Then
ExitSub
Else
Directory=.SelectedItems(1)
EndIf
EndWith
Cells.ClearContents
CallRecursiveDir(Directory)
EndSub
PublicSubRecursiveDir(ByValCurrDirAsString)
DimDirs()AsString
DimNumDirsAsLong
DimFilesizeAsDouble
DimTotalFolders,SingleFolder
Cells(1,1)="目录名"
Cells(1,2)="日期/时间"
Range("A1:B1").Font.Bold=True
SetTotalFolders=CreateObject("Scripting.FileSystemObject").GetFolder(CurrDir).SubFolders
Cells(WorksheetFunction.CountA(Range("A:A"))+1,1)=CurrDir
Cells(WorksheetFunction.CountA(Range("B:B"))+1,2)=FileDateTime(CurrDir)
IfTotalFolders.Count<>0Then
ReDimPreserveDirs(0ToNumDirs)AsString
Dirs(NumDirs)=SingleFolder
NumDirs=NumDirs+1
Next
EndIf
Fori=0ToNumDirs-1
RecursiveDirDirs(i)
Nexti
EndSub
⑽ EXCEL怎样用VBA自动提取文件夹内的文件名
qgrmdtj的代码生成的是"文件名",这和楼主的要求一样,而"喜欢自作多情 "生成的结果是代路径的,好像和提问有点偏差.