【问题标题】:Copy and Paste from multiple workbooks into a single workbook into the next blank row从多个工作簿复制并粘贴到单个工作簿到下一个空白行
【发布时间】:2017-10-24 21:30:28
【问题描述】:

任何帮助将不胜感激。我想要完成的是从多个工作簿中获取相同的范围并粘贴到一个单独的工作簿中。我遇到的问题是我希望将数据粘贴到下一个可用行中。我当前的代码除了粘贴 vba(数据当前重叠)之外,一切都正确无误

我要复制的范围也有空白行,所以让粘贴代码删除空白行的方法会很棒。

在这方面的任何帮助都会很棒!

提前谢谢你

Sub MergeYear()

Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As 
Object
Dim r As Long
Dim path As String

path = ThisWorkbook.Sheets(1).Range("B9")

Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder(path)
Set filesObj = dirObj.Files

For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
r = r + 1
bookList.Sheets(5).Range("A2:Q366").Copy ThisWorkbook.Sheets(5).Cells(r + 1, 
1)
bookList.Close
Next everyObj

End Sub

【问题讨论】:

标签: vba excel


【解决方案1】:

你需要定义最后一行,然后粘贴到最后一行+1。

With ThisWorkbook.Sheets(5) 
    r = .Cells(.Rows.Count, 1).End(xlUp).Row
    bookList.Sheets(5).Range("A2:Q366").Copy .Cells(r + 1, 1)
End With

编辑

在问题的第二部分添加。假设所有空白行都被复制到 master 目标表,所以我们只需要删除那里的空白...请注意,这可能会很慢,具体取决于您有多少行:

Dim j as Long, LR as Long
With ThisWorkbook.Sheets(5)
    LR = .Cells(.Rows.Count, 1).End(xlUp).Row 'Assumes col A is contiguous
    For j = LR to 1 Step -1 'VERY IMPORTANT WHEN DELETING
        If .Cells(j, "A").Value = "" Then 'Assumes A must contain values
            .Rows(i).Delete
        End If
    Next j
End With

【讨论】:

  • 使用你现有的 r As Long
  • 这很好用!有关如何在粘贴时删除空白行的帮助?我要处理的每个范围都有空白行。
  • 是否存在公式或只是硬编码值?不妨用 bookList.Sheets(5).Range("A2:Q366").SpecialCells(xlCellTypeConstants)
  • 假设查找空白行的条件列可以是 A 并且包含常量(即不是公式),请使用 Application.Intersect(bookList.Sheets(5).Range("A2:A366").SpecialCells(XlCellType.xlCellTypeConstants).EntireRow,bookList.Sheets(5).Range("A2:Q366")).Copy ...。这里的原理是SpecialCells会快速的在criteria列中找到常量,展开到整行,然后与感兴趣的范围相交;结果被复制。请注意,如果 A 列中没有任何常量,这将失败,并显示消息 No cells were found。使用错误处理。
  • @DanC Excelosaurus/QHarr 可以很好地解决您的其他问题。我将发布另一个解决方案作为我的答案的一部分,以防您在原始文档中只有空白(我们将第二次循环遍历所有粘贴的数据以删除空白行)。
猜你喜欢
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多