Ⅰ 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获取文件夹里边word文件个数
下面的代码在我电脑上执行通过,希望对比编程有所借鉴:
OptionExplicit
SubYgB()
Dimn,f
n=0
f=Dir("d:我的文档exp*.doc*")
Whilef<>""
n=n+1
f=Dir
Wend
MsgBox"总共有"&n&"个WORD文件"
EndSub
Ⅲ excel vba 代码如何取得一个文件夹里有多少个excel文件, 就是计算一个文件夹里有几个e
Sub tt()
Dim p$, f$, n%
p = ThisWorkbook.Path & "\" '换成你设定的路径
f = Dir(p & "*.xls*")
If f <> "" Then
Do Until f = ""
n = n + 1
f = Dir
Loop
End If
MsgBox n
End Sub
Ⅳ excel表格用vba查询指定文件夹里子文件夹数量
需要沟通才能理解你的意图
Ⅳ Excel VBA 求一个文件夹内所有工作簿中工作表的个数
新建一个xlsm文件,复制如下代码到这个文件中,F5执行代码
就可弹出工作表数量(注意工作簿默认是xlsx格式)
Sub 鱼木混猪()
Application.ScreenUpdating = False
f = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While f <> ""
Workbooks.Open ThisWorkbook.Path & "\" & f
数量 = 数量 + ActiveWorkbook.Sheets.Count
ActiveWorkbook.Close
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox 数量
End Sub
Ⅵ 如何用vba依次打开本文件夹中所有文件 ,统计每个文件夹中的数据 ,并
Sub合()
DimrangeArray()AsString
DimbkAsWorkbook
DimshtAsWorksheet
DimwbCountAsInteger
wbCount=Workbooks.Count
ReDimrangeArray(1TowbCount-1)
ForEachbkInWorkbooks
IfNotbkIsThisWorkbookThen
Setsht=bk.Worksheets(1)
i=i+1
rangeArray(i)="'["&bk.Name&"]"&sht.Name&"'!"&_
sht.Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
EndIf
Next
Worksheets(1).Range("A1").ConsolidaterangeArray,xlSum,True,True'汇总多个工作薄的第一个工作表
Setsht=Nothing
EndSub
这是一个将当前工作薄中的所有除当前打开的工作薄的数据汇总到当前工作薄的代码,供您参考。
您的各表中的数据结构不清楚,不好处理。这代码也不是本人写的。本人也是在此基础上根据自己的需要另写代码处理自己的问题的。
希望能帮到您。
Ⅶ 在vba中如何计算txt文件的条数
Private Sub Form_Load()
Dim filetxt As String
filetxt = String(FileLen("文本文件"), " ")
Open "文本文件" For Binary As 1
Get #1, , filetxt
Close 1
Hx = Split(filetxt, vbCrLf)
Lines = UBound(Hx) '文本文件行数
Ⅷ vba 某路径下有多少个子文件夹
Private MyDirectory() As String
Private n As Long
Sub MyMain()
Dim i As Integer
n = 0
'调用自定义递归过程
Call FindMyPath("C:\AAA\BBB\") '假设要搜索"C:\AAA\BBB\”里的所有子文件夹
'输出所有子文件夹
For i = 1 To UBound(MyDirectory)
Debug.Print MyDirectory(i)
Next i
'输出子文件夹总数
Debug.Print UBound(MyDirectory)
End Sub
'自定义递归过程
Private Sub FindMyPath(ByVal MyPath As String)
Dim MyDirCount As Long
Dim MyDirs() As String
Dim MyResult As String
Dim i As Long
MyDirCount = 0
If Right$(MyPath, 1) <> "\" Then MyPath = MyPath & "\"
MyResult = Dir(MyPath, vbDirectory + vbSystem + vbReadOnly + vbHidden + vbNormal + vbArchive)
Do While Len(MyResult) > 0
DoEvents
If MyResult <> "." And MyResult <> ".." Then
If (GetAttr(MyPath & MyResult) And vbDirectory) = vbDirectory Then
n = n + 1
ReDim Preserve MyDirectory(n)
MyDirectory(n) = MyPath & MyResult
MyDirCount = MyDirCount + 1
ReDim Preserve MyDirs(MyDirCount)
MyDirs(MyDirCount) = MyPath & MyResult
End If
End If
MyResult = Dir(, vbDirectory + vbSystem + vbReadOnly + vbHidden + vbNormal + vbArchive)
Loop
For i = 1 To MyDirCount
Call FindMyPath(MyDirs(i))
Next i
End Sub
Ⅸ 利用VBA将文件夹中文件的内容快速汇总到一个工作簿中的代码
第1个问题如果不在代码里面明确指定引用的sheet,就是默认的当前系统就是active sheet。
第2个问题,你的赋值语句的写法不对。
Ⅹ excel vba 中如何取得目录下文件的数量
FunctionFileCount(cPathAsString)asInteger
cFile=Dir(cPath&"*.*")
DoWhilecFile<>""
FileCount=FileCount+1
cFile=Dir
Loop
EndFunction
这是一段自定义函数,在Excel VBA编辑模式下,主菜单“插入”——“模块”,将代码粘贴到右侧编辑区。如果在工作表状态下使用,在单元格输入:=FileCount("c:XXX")就可以得出c:XXX文件夹下的所有文件个数(不含子文件夹);如果在代码中使用,则可以:nFileCount=FileCount("c:XXX")得到文件个数。注意:cPath参数必须以“”符号结尾。