vba取文件夹路径
① VB查找指定文件夹并获取文件路径的代码
DimkzAsBoolean
PrivateFunctionSearchFiles(PathAsString,FileTypeAsString)
IfkzThenExitFunction
DimFiles()AsString'文件路径
DimFolder()AsString'文件夹路径
Dima,b,cAsLong
DimsPathAsString
OnErrorGoToCheckError
IfRight(Path,1)<>""ThenPath=Path&""
sPath=Dir(Path&FileType)'查找第一个文件
DoWhileLen(sPath)'循环到没有文件为止
a=a+1
ReDimPreserveFiles(1Toa)
Files(a)=Path&sPath'将文件目录和文件名组合,并存放到数组中
List1.AddItemFiles(a)'加入list控件中
sPath=Dir'查找下一个文件
DoEvents'让出控制权
Loop
sPath=Dir(Path,vbDirectory)'查找第一个文件夹
DoWhileLen(sPath)'循环到没有文件夹为止
IfLeft(sPath,1)<>"."Then'为了防止重复查找
IfGetAttr(Path&sPath)AndvbDirectoryThen'如果是文件夹则。。。。。。
b=b+1
ReDimPreserveFolder(1Tob)
Folder(b)=Path&sPath&""'将目录和文件夹名称组合形成新的目录,并存放到数组中
EndIf
EndIf
sPath=Dir'查找下一个文件夹
DoEvents'让出控制权
Loop
CheckError:
Forc=1Tob'使用递归方法,遍历所有目录
SearchFilesFolder(c),FileType
Next
EndFunction
PrivateSubCommand1_Click()
IfCommand1.Caption="查找"Then
Command1.Caption="停止"
kz=False
List1.Clear
SearchFilesText1.Text,Text2.Text'查找所有文件
Else
Command1.Caption="查找"
kz=True
EndIf
EndSub
PrivateSubForm_Load()
Text1.Text="c:"
Text2.Text="测试*.*"
EndSub
② 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 允许用户保存一个文件
③ VBA中怎么通过打开文件的对话框获取选择文件的路径并在其他模块中引用该路径
1.插入一个模块或在已有的模块最上面一行定义一个全局变量
比如: Public iFileName As String
2.在这个工作薄的其他模块中都可以引用这个变量
比如:(先执行一次test1,再执行test2)
Sub test1()
'打开一个选择文件的对话框
iFileName = Application.GetOpenFilename
End Sub
Sub test2()
If iFileName = "False" Then
MsgBox "没有选择文件!"
Else
wz = InStrRev(iFileName, "\")
Path = Left(iFileName, wz)
fname = Right(iFileName, Len(iFileName) - wz)
MsgBox "选择的文件名为:" & fname & vbCrLf & "路径为:" & Path
End If
End Sub
④ 如何运用VBA将指定路径下的某一文件复制到另一指定路径下
1、我们需要批量提取新建文件夹里的文件完整路径,打开批量提取文件名的excel文件。
⑤ 如何通过VBA,获得本文件所在的文件夹路径。
Subs()
Dimpth$
pth=ThisWorkbook.Path
MsgBox"本文件的路径为:"&pth
EndSub