首页 > 解决方案 > 要在动态范围内粘贴的宏

问题描述

我需要将数据表从一个工作簿复制到另一个工作簿。我想出了如何设置复制范围,但正在努力解决动态的目标范围。

为了更好地理解;复制文档包括一组按日期排序的值。有时数据集将从 1 月 1 日开始,有时以 5 月 5 日或任何其他随机日期开始。

目标文档是从 1 月 1 日到 12 月 31 日的固定日期表,数据需要粘贴到正确的行中(根据匹配日期)。列是固定的。

我在目标文档中有一个 MATCH 公式来交叉检查粘贴范围应该从哪一行开始,但不知道如何将它与已知列结合起来。

现在我有:

Dim x As Workbook
Dim y As Workbook

Set x = Workbooks.Open("PATHWAY 1")
Set y = ThisWorkbook

x.Sheets("2").Range("B1:F1").End(xlDown).Copy

'Now, paste to y worksheet:
y.Sheets("R2").Range.Cells("2,[Helper.xlsb]R2!$H$2").PasteSpecial xlPasteValues

数据集截图

标签: excelvba

解决方案


也许这就是你要找的。

dim m as variant

x.Sheets("2").Range("B1:F1").End(xlDown).Copy
m = application.match(dateserial(2018, 10, 31), y.range("A:A"), 0)
if not iserror(m) then
    y.Sheets("R2").Cells(m, "B").PasteSpecial xlPasteValues
end if

推荐阅读