❶ vba提取多層文件夾的*.xls文件,根據獲取到的文件名及路徑逐個打開*.xls文件,去判斷某幾列有多少個數據
一、所需DOS命令
dir [drive:][path] /b > [drive:][path]filename
二、應用實例
如下圖,在D盤中,有一個名稱為「TQIPC」的文件夾,這個文件夾裡面,存放了很多的照片!
看到了沒有,文件夾中的照片名稱,自動就顯示在excel表格中了!
該dos命令非常強大,用好dos命令,可省去我們很多的功夫。
三、知識擴展
下面,再給大家一個例子,即,自動根據照片(根據人物名稱),建立文件夾。
如果某個文件夾下面,您存放的是某些人物的照片,並且,每個人物的照片,都使用其名字來命名;這個時候,如何要自動根據人物的自動建立其對應的文件夾,也相當方便!
操作的方法是,先根據上述的方法,獲取所有人物的照片的名稱,生成EXCEL文件;
然後,在人物名稱列前面,插入一列,並輸入MD;
接下來,使用查找替換功能,將excel文件中的人物名稱,去掉擴展名(只保留名字);
最後,將excel的內容,復制粘貼到記事本中,現在,我們就得到了形如:「MD人物名稱」這樣的命令格式了。(md 文件名稱,該命令格式,是使用來建立文件夾的命令,上述的操作,都是為此做准備!)
將記事本文件保存成為形如:124.bat格式的文件,最後,雙擊此文件,文件夾名稱就自動建立好了!
❷ VBA查找文件夾下所有excel文件中的相關數據
事實上可以實現的,我給你一個思路,一是遍歷所有文件!這是可以辦到的,給你一段代碼?這個代碼我用來遍歷文件名稱的,根據指定目標找出所有文件!當然還有一個控制項我發不上來!
Private Sub filesexcel_Click()
Dim fd As Object
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'開啟Excel內建的資料夾瀏覽方塊
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then
LookIn = fd.SelectedItems(1)
Else
MsgBox "您未選擇瀏覽目標文件夾!", 48, "系統提示": Exit Sub
End If
Sheet1.Range("A4:IV65536").Clear
Application.ScreenUpdating = False
Dim i As Long
Dim strName As String
Dim strNewNme As String
Dim CaZao As New FilesSearch.glFilesSearch
Application.DisplayAlerts = False
With CaZao
.LookIn = fd.SelectedItems(1)
.FileType =
'.Filename = "*.xls*" '這里可以打開任何類型的工作簿文件
.SearchSubFolders = True
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Sheet1.Range("A" & Sheet1.[A65536].End(xlUp).Row + 1) = i
Sheet1.Range("B" & Sheet1.[A65536].End(xlUp).Row).Hyperlinks.Add Anchor:=Sheet1.Range("B" & Sheet1.[A65536].End(xlUp).Row), Address:=.FoundFiles(i), TextToDisplay:=.FoundFiles(i)
Sheet1.Range("c" & Sheet1.[A65536].End(xlUp).Row) = GetFileType(.FoundFiles(i))
Sheet1.Range("D" & Sheet1.[A65536].End(xlUp).Row) = FileLen(.FoundFiles(i))
Sheet1.Range("E" & Sheet1.[A65536].End(xlUp).Row) = FileDateTime(.FoundFiles(i))
Next i
Else
MsgBox "您選擇的目錄沒有Excel文件!", vbQuestion, Title:="系統信息"
End If
End With
Set CaZao = Nothing
Range("A:A,D:D").Select
Selection.HorizontalAlignment = xlCenter
Sheet1.Range("A4").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
然後,再增加用循環統計這些表名稱旨定單元格的值就行了!而你說的那種,把所有表的某一行找出來,思路是有問題的!而是這些表以行數據的形式存在,然後根據輸入的數據在後面顯示行的值!有機會我幫做做哦!
❸ 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
❹ 怎麼實現用vba 批量的搜索文檔內容並收集到一張excel表裡面
vba讀取word內容會弄嗎?
dir(*.Doc)知道怎麼用嗎?
大約思路吧
1、枚舉所有word文檔
2、查找word中的你需要的內容
3、填寫到excel表中
呵呵,不知道你vba水平如何,但按你的題目,我也只能回答這么多了。按這個思路網路去,總會找到辦法的。
❺ 怎麼用vba 做一個文件搜索程序
代碼及注釋如下:
sub main
dim fs
Set fs = Application.FileSearch'定義fs為文件搜索
With fs
.LookIn = "C:\"'搜索位置為C盤根目錄
.FileName =worksheets("sheet1").cells(1,1) 』搜索名稱為工作表1中的第一個單元格
If .Execute > 0 Then'如果搜索結果不為空
For i = 1 To .FoundFiles.Count
worksheets("sheet1").cells(i,2)= .FoundFiles(i)'遍歷所有文件,並將之放到第二列中
Next i
Else
MsgBox "There were no files found."'如果找不到,則提示沒找到
End If
End With
end sub
❻ 【高分求代碼!】用vba,如何檢索一個文件夾里所有txt文件中,包含某一文字,並顯示結果呢
Sub t()
Dim fso, f, f1, fc, s, r
Const ForReading = 1, ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
'Set fc = fso.GetFile(WScript.ScriptFullName).ParentFolder.Files
Set fc = fso.GetFolder("c:\windows").Files '使用時把c:\windows改成實際的文件夾
L = 1
For Each f1 In fc
EXTName = UCase(fso.GetExtensionName(f1.Name))
If EXTName = "TXT" Then
Set fs = fso.OpenTextFile(f1, ForReading)
fb = fs.ReadAll
If InStr(1, fb, "蘋果") > 0 Then
Cells(L, 1) = f1.Name
Cells(L, 2) = f1.Path
L = L + 1
End If
End If
Next
End Sub
❼ VBA 如何遍歷文件夾,找到文件,找到單號,引出內容
採用 數組+ files集合 + 字典判斷 的方法將 單號 存入字典,循環files名字,用字典判斷是否存在或者將 files名字 存入字典,循環 單號,用字典判斷是否存在 files集合方法:Sub ShowFileList(ph) Dim fs, f, f1, fc, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(ph) Set fc = f.Files For Each f1 In fc s = s & f1.Name s = s & vbCrLf Next MsgBox sEnd Sub字典方法:Set d = CreateObject("Scripting.Dictionary")
以上回答你滿意么?
❽ EXCEL如何用VBA實現多條件查詢數據
1、以商場2015年第一季度電器銷售統計為例子,「產品」、「品牌」、「月份」3個條件的銷售額進行查詢。
❾ 如何用excel vba按關鍵字選擇性的遍歷文件夾搜索文件
Excel怎樣批量提取文件夾和子文件夾所有文件
怎樣批量提取文件夾下文件名