乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>VBA</em>中如何<em>打开</em>一个文件夹内的所有&

<em>VBA</em>中如何<em>打开</em>一个文件夹内的所有&

作者:乔山办公网日期:

返回目录:excel表格制作


试一下以下代码, 祝你成功!
Dim fcc,fo,fso
Set fso = CreateObject("Scripting.filesystemobject")
Set fo = fso.getfolder("C:\AA") '文件
i=1
For Each fc In fo.subFolders
For Each fcc In fc.Files
If InStr(1, fcc.Name, ".doc", 1) Then
Range("A" & i) = fcc.Name
i = i + 1
End If
Next
Next

'这段代码是读取一个文件夹下的所有文件,也可以根据扩展名筛选其它格式的.
'有了文件名,就是打开7a64e78988e69d83366文件,获得每个文件的SHEET名字.然后写到你想要的地方

Sub Macro1()
Dim myDialog As FileDialog, oFile As Object, strName As String, n As Integer
Dim FSO As Object, myFolder As Object, myFiles As Object ,Dim fn$
Set myDialog = Application.FileDialog(msoFileDialogFolderPicker)
n = 1
With myDialog
If .Show <> -1 Then Exit Sub
Set FSO = CreateObject("Scripting.FileSystemObject") '这是文件夹选择,点选到你存放文件的那个
Set myFolder = FSO.GetFolder(.InitialFileName)
Set myFiles = myFolder.Files

For Each oFile In myFiles
strName = UCase(oFile.Name)
strName = VBA.Right(strName, 3)
If strName = "xls" Or strName = "XLS" Then '这是扩展名选择
'下面就可接着写打开文件读取数据再写入的语句了,如下:
fn = myFolder & "\" & oFile.Name
Workbooks.Open Filename:=fn
Worksheets(1).Select '假设你读取SHEET1的数据
RANGE_ = Range("A2:F50") '需要数据的区域,自己修改
Windows("外部表格数据自动导入.xls").Activate '这个是新表的文件名,自己修改下
Worksheets(n).Select '打开第几个文件就选择SHEET几,如果没有可用ADD代码添加
Range("a2:f5") = RANGE_ '写入数据
Workbooks(2).Close
n = n + 1
End If
Next
End With
End Sub


注意 c:\a 目录下的文件不要太多,免得死机

Sub 打开excel表格()
Dim myPath$, myFile$, AK As Workbook
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
myPath = "c:\a\" '把文件路径定义给变量
myFile = Dir(myPath & "*.xls") '依次找寻指定路径中的*.xls文件
Do While myFile <> "" '当指定路径中有文件时进行循环
If myFile <> ThisWorkbook.Name Then
Set AK = Workbooks.Open(myPath & myFile) '打开符合要求的文件
End If
myFile = Dir '找寻下一个zd*.xls文件
Loop
Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网