vba如何打开一个文件夹及其子文件夹中所有的Excel表并处理合成一个表以方便日后查询,请高手指教不胜感谢
因为每个子文件夹名称、Excel文件名称都不是唯一的,需要编辑的这样的Excel文件又有很多,希望大家能帮忙一下。我现在知道一个文件夹名称,它下面包含几级子文件夹,我想要...
因为每个子文件夹名称、Excel文件名称都不是唯一的,需要编辑的这样的Excel文件又有很多,希望大家能帮忙一下。
我现在知道一个文件夹名称,它下面包含几级子文件夹,我想要在不打开excel表的情况下,依次将所有的已知的子文件夹下的excel表,汇总并处理成一个sheet表。如下所示:
初学vba,请大家多多指教。先谢谢大家了! 展开
我现在知道一个文件夹名称,它下面包含几级子文件夹,我想要在不打开excel表的情况下,依次将所有的已知的子文件夹下的excel表,汇总并处理成一个sheet表。如下所示:
初学vba,请大家多多指教。先谢谢大家了! 展开
4个回答
展开全部
新建一个汇总表,ALF+F11 打开VBE 新建一个模块 粘贴如下代码, 然后运行此宏
Sub 合并工作簿()
Dim wb As Workbook
Dim sh As Worksheet
Dim tsh As Worksheet
Dim col As Long
Dim i As Long
Set tsh = ThisWorkbook.Sheets(1)
tsh.Cells.Clear
With Application.FileSearch '调用fileserch对象
.NewSearch '开始新的搜索
.LookIn = "D:\360data\重要数据\桌面\新建文件夹" '设置搜索的路径
.SearchSubFolders = True '搜索范围包括 LookIn 属性指定的文件夹中的所有子文件夹
.Filename = "*.xl*" '设置搜索的文件类型
If .Execute() > 0 Then '如果找到文件
For i = 1 To .FoundFiles.Count '在搜索到的文件中循环
Set wb = Workbooks.Open(.FoundFiles(i)) '打开文件
For Each sh In wb.Sheets '在打开的工作簿中循环每个sheet
col = tsh.UsedRange.Columns.Count + tsh.UsedRange.Column '汇总表,表1 当前数据最后一列的列号
sh.UsedRange.Copy tsh.Cells(1, col + 1) '把每个表都复制到 汇总表,表1
Next sh
wb.Close False '关闭打开的工作簿
Next i
Else
MsgBox "没找到文件"
End If
Set wb = Nothing
Set tsh = Nothing
End With
End Sub
注:由于 fileserch对象 只存在于2003版本, 此方法其他高级版本不适用
2014-03-19 · 知道合伙人软件行家
关注
展开全部
建议楼主把文件发出来。找人做。
你现在不熟练VBA的很多语法,属性,方法。要教你还不如写给你看。
你现在不熟练VBA的很多语法,属性,方法。要教你还不如写给你看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以实现,就是你的表格太不规范了。徒增很多代码啊。
追问
这个可以优化哈,你能帮忙给个代码,让我操作一下吗,谢谢拉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注一下,我也想知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询