求助EXCEL使用VBA批量打开一系列表格文件并复制里面的数据到另一个表格文件中

求助使用VBA批量打开一系列表格文件并复制里面的数据到另一个表格文件中以上是数据报表文件,效果及要求... 求助使用VBA批量打开一系列表格文件并复制里面的数据到另一个表格文件中

以上是数据报表文件,

效果及要求
展开
 我来答
百度网友ca64c0c
推荐于2017-12-16 · TA获得超过4667个赞
知道大有可为答主
回答量:2991
采纳率:61%
帮助的人:1478万
展开全部
Sub Copy_Data()
Dim wb As Workbook, rng As Range, sht As Worksheet
Dim sht_Name, theDate

sht_Name = "Sheet1" '假设所有报表文件中的数据都在 Sheet1
Set sht = ActiveSheet '保存当前工作表对象

fn = Dir(ThisWorkbook.Path & "\报表-*.xls", vbReadOnly) '打开第一个报表文件
Do While fn <> "" '开始循环
    Set wb = Workbooks.Open(fn) '以只读模式打开报表文件
    
    '取得报表文件中的日期字符串
    theDate = Mid(fn, InStr(fn, "\报表-") + 4, Len(fn) - InStr(fn, "\报表-") - 7)

    '将报表文件中的数据复制到当前工作表
    With wb.Worksheets(sht_Name)
        .Range(.Range("A2"), .Range("A1").End(xlToRight).End(xlDown)).Copy _
            Destination:=sht.Range("A65536").End(xlUp).Offset(1, 1)
    End With
    wb.Close (False) '关闭报表文件,不保存
    sht.Activate '激活当前工作表
    Range(Range("A65536").End(xlUp).Offset(1, 0), Range("B65536").End(xlUp).Offset(0, -1)) = DateValue(Format(theDate, "0000-00-00")) '在A列填充报表文件的日期信息
    fn = Dir
Loop '循环下一个报表文件
End Sub
更多追问追答
追问

我确定把这个工作表和报表是放在同一个文件夹的,运行宏的时候怎么出现这种错误

追答

请问,报表文件是 2007/2010 版的吗?那么后缀应该是 xlsx(我看提问中写的是 xls),那么代码要略作修改:

Sub Copy_Data()
Dim wb As Workbook, rng As Range, sht As Worksheet
Dim sht_Name, theDate

sht_Name = "Sheet1"
Set sht = ActiveSheet

fn = Dir(ThisWorkbook.Path & "\报表-*.xlsx", vbReadOnly)
Do While fn <> ""
    Set wb = Workbooks.Open(fn)
    theDate = Mid(fn, InStr(fn, "\报表-") + 4, Len(fn) - InStr(fn, "\报表-") - 8)
    With wb.Worksheets(sht_Name)
        .Range(.Range("A2"), .Range("A1").End(xlToRight).End(xlDown)).Copy _
            Destination:=sht.Range("A65536").End(xlUp).Offset(1, 1)
    End With
    wb.Close (False)
    sht.Activate
    Range(Range("A65536").End(xlUp).Offset(1, 0), Range("B65536").End(xlUp).Offset(0, -1)) = DateValue(Format(theDate, "0000-00-00"))
    fn = Dir
Loop
End Sub

上面的代码请粘贴在 worksheet 的代码窗口,然后将这个文件与报表文件保存在同一个文件夹中。

fn = Dir(ThisWorkbook.Path & "\报表-*.xlsx", vbReadOnly) 这句代码保证了能够打开同一文件夹中的所有报表文件。

太极健1969
2014-04-01 · TA获得超过9033个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3612万
展开全部
报表数据区不一样,怎么选择????
最少你报表的列是一样的呀,行数是可以不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式