1. vba獲取路徑下所有文件名和對應的文件路徑,並且顯示到下面表格中。怎麼做
一、所需DOS命令
dir [drive:][path] /b > [drive:][path]filename
二、應用實例
如下圖,在D盤中,有一個名稱為「TQIPC」的文件夾,這個文件夾裡面,存放了很多的照片!
看到了沒有,文件夾中的照片名稱,自動就顯示在excel表格中了!
該dos命令非常強大,用好dos命令,可省去我們很多的功夫。
三、知識擴展
下面,再給大家一個例子,即,自動根據照片(根據人物名稱),建立文件夾。
如果某個文件夾下面,您存放的是某些人物的照片,並且,每個人物的照片,都使用其名字來命名;這個時候,如何要自動根據人物的自動建立其對應的文件夾,也相當方便!
操作的方法是,先根據上述的方法,獲取所有人物的照片的名稱,生成EXCEL文件;
然後,在人物名稱列前面,插入一列,並輸入MD;
接下來,使用查找替換功能,將excel文件中的人物名稱,去掉擴展名(只保留名字);
最後,將excel的內容,復制粘貼到記事本中,現在,我們就得到了形如:「MD人物名稱」這樣的命令格式了。(md 文件名稱,該命令格式,是使用來建立文件夾的命令,上述的操作,都是為此做准備!)
將記事本文件保存成為形如:124.bat格式的文件,最後,雙擊此文件,文件夾名稱就自動建立好了!
2. 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")
3. VBA獲取某文件夾下所有文件和子文件目錄的文件
【引用位置】 https://blog.csdn.net/pashine/article/details/42100237
'-------------------------------------------
'獲取某文件夾下的所有Excel文件
'-------------------------------------------
Sub getExcelFile(sFolderPath As String)
On Error Resume Next
Dim f As String
Dim file() As String
Dim x
k = 1
ReDim file(1)
file(1) = sFolderPath & ""
End Sub
'-------------------------------------------
'獲取某文件夾下的所有文件和子目錄下的文件
'-------------------------------------------
Sub getAllFile(sFolderPath As String)
'Columns(1).Delete
On Error Resume Next
Dim f As String
Dim file() As String
Dim i, k, x
x = 1
i = 1
k = 1
ReDim file(1 To i)
file(1) = sFolderPath & ""
'-- 獲得所有子目錄
Do Until i > k
f = Dir(file(i), vbDirectory)
Do Until f = ""
If InStr(f, ".") = 0 Then
k = k + 1
ReDim Preserve file(1 To k)
file(k) = file(i) & f & ""
End If
f = Dir
Loop
i = i + 1
Loop
'-- 獲得所有子目錄下的所有文件
For i = 1 To k
f = Dir(file(i) & " . ") '通配符 . 表示所有文件,*.xlsx Excel文件
Do Until f = ""
'Range("a" & x) = f
Range("a" & x).Hyperlinks.Add Anchor:=Range("a" & x), Address:=file(i) & f, TextToDisplay:=f
x = x + 1
f = Dir
Loop
Next
End Sub
4. 如何用VBA遍歷指定目錄下的所有子文件夾和文件
SubTest()
DimMyName,Dic,Did,I,T,F,TT,MyFileName
T=Time
SetDic=CreateObject("Scripting.Dictionary")'創建一個字典對象
SetDid=CreateObject("Scripting.Dictionary")
Dic.Add("D:MyDocuments"),""
I=0
DoWhileI<Dic.Count
Ke=Dic.keys'開始遍歷字典
MyName=Dir(Ke(I),vbDirectory)'查找目錄
DoWhileMyName<>""
IfMyName<>"."AndMyName<>".."Then
If(GetAttr(Ke(I)&MyName)AndvbDirectory)=vbDirectoryThen'如果是次級目錄
Dic.Add(Ke(I)&MyName&""),""'就往字典中添加這個次級目錄名作為一個條目
EndIf
EndIf
MyName=Dir'繼續遍歷尋找
Loop
I=I+1
Loop
Did.Add("文件清單"),""'以查找D盤MyDocuments下所有EXCEL文件為例
ForEachKeInDic.keys
MyFileName=Dir(Ke&"*.xls")
DoWhileMyFileName<>""
Did.Add(Ke&MyFileName),""
MyFileName=Dir
Loop
Next
ForEachShInThisWorkbook.Worksheets
IfSh.Name="XLS文件清單"Then
Sheets("XLS文件清單").Cells.Delete
F=True
ExitFor
Else
F=False
EndIf
Next
IfNotFThen
Sheets.Add.Name="XLS文件清單"
EndIf
Sheets("XLS文件清單").[A1].Resize(Did.Count,1)=WorksheetFunction.Transpose(Did.keys)
TT=Time-T
MsgBoxMinute(TT)&"分"&Second(TT)&"秒"
EndSub
5. VBA 如何搜索指定目錄內的文件里內容
改成這樣吧:
sub Search()
dim fso as object
dim fol as object
dim fil as object
dim wb as workbook
dim sht as worksheet
Set fso = CreateObject("Scripting.filesystemobject")
Set fol = fso.getfolder("C:\xx")
For Each fil In fol.Files
set wb=workbooks.open(fil.path)
for each sht in wb.sheets
if not sht.cells.find("10010",,,1) is nothing then
msgbox "Found." & wb.name
wb.close
exit sub
end if
next sht
wb.close
next fil
msgbox "Not found"
end sub
6. VBA語言如何打開指定文件名的文件
在D盤新建一個名為文件的文件夾,在裡面創建幾個Excel文件。