❶ 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怎样批量提取文件夹和子文件夹所有文件
怎样批量提取文件夹下文件名