【问题标题】:Copy data from all files in a folder从文件夹中的所有文件复制数据
【发布时间】:2012-10-03 12:03:55
【问题描述】:

我需要打开一个文件夹中的所有 Excel 文件,并将每个文件的第一行、第 57 行、第 72 行、第 73 行和第 74 行复制到同一个工作簿中。

这是我目前所拥有的:

Dim i As Integer
Dim wbOpen As Workbook
Dim MyPath As String
Dim strFilename As String
MyPath = "C:\foldername" 'the folder
strFilename = Dir(MyPath & "\*.xls") 'all excel files in folder

Do Until strFilename = ""

    'here it gives an error, saying it can't open file,
    ' even though it apparently has found it
    wbOpen = Workbooks.Open(strFilename)

    'copy relevant text
    Workbooks(2).Activate
    Sheets("blad1").Rows(1, 57, 72, 73, 74).Copy
    Workbooks(1).Activate
    'select the first empty row
    irow = ActiveSheet.UsedRange.Rows.Count + 1
    'insert the copied
    irow.Insert Shift:=xlDown
    'close the workbook without saving
    Workbooks(2).Close SaveChanges:=False
    Close

Loop

【问题讨论】:

    标签: excel directory copy-paste vba


    【解决方案1】:

    试试这个方法:

    MyPath = "C:\foldername" 'the folder
    strFilename = Dir(MyPath & "\*.xls") 'all excel files in folder
    
    Do Until strFilename = ""
    ...
    strFilename=Dir()
    Loop
    

    告诉我这是否有效

    编辑:将Sheets("blad1").Rows(1, 57, 72, 73, 74).Copy 修复为 Sheets("blad1").Rows("1, 57, 72, 73, 74").Copy

    【讨论】:

    • 不,仍然无法正常工作。奇怪的是,它一直给出这个错误:“(正确的文件名.xls)找不到。”对于行 Workbooks.Open (strFilename)
    • 好吧,我尝试了以下方法: strFilename = Dir() Workbooks.Open (MyPath & "\" & strFilename) 'rest 与打开第一个文件相同,但随后说文件不是真正的 xls 文件,然后停止..
    • 我遇到了和以前一样的错误。问题可能是当我尝试手动打开工作簿时,我也得到相同的消息:“文件的文件格式与其扩展名不同。也许它来自不可靠的来源 blabla,你确定要打开它吗? ?”
    • jep,这似乎确实有效。 (谢谢!)但是,我打算如何复制和粘贴行显然也不起作用。哈哈。更大的问题:有没有办法解决所谓的损坏(但工作正常)的文件?
    • @Asad - 您看到的消息很可能是由“内容强化”引起的 - 请参见此处:jwgoerlich.us/blogengine/post/2009/08/11/…
    猜你喜欢
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2016-08-04
    • 1970-01-01
    • 2020-05-20
    • 2020-03-08
    相关资源
    最近更新 更多