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