⑴ 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的代碼生成的是"文件名",這和樓主的要求一樣,而"喜歡自作多情 "生成的結果是代路徑的,好像和提問有點偏差.