VBA 使用动态选择粘贴范围

VBA paste range with dynamic selection

我阅读了多个问答,但是我很难真正理解所有使用不同对象的长脚本。

我正在尝试 select 从一个工作表到另一个工作表的范围。 我想保持范围动态,因为范围每次都可能不同。通过这样做,我使用了以下脚本:

Dim range As Long

For range = ActiveCell To ActiveCell.End(xlDown)
Sheets("Stock Report").range("A4" & range).Value = 
    Sheets("Unique File").range("Y8" & range).Value

然而它什么也没做。

这个脚本确实有效,但我想保持最后一个单元格动态:

Sheets("Stock Report").Range("A4:A9000").Value = 
    Sheets("Unique File").Range("Y8:Y90004").Value

我必须对多个列执行此操作,这些列是通过使用不同工作表中的其他文件计算得出的,并且需要最终对它们进行排序,而无需在另一个工作表中进行所有计算。

有什么建议吗?

好的试试。

Sheets("Unique File").Range("Y8:Y" & Sheets("Unique File").Range("A4").End(xlDown).Row + 4).Copy
Sheets("Stock Report").Range("A4").PasteSpecial Paste:=xlPasteValues

Range("A4").End(xlDown).Row 获取 Stock Report sheet 上数据的最后一行,用于向下复制到 Unique File 上的同一行sheet。我添加了 4,因为您的范围从 Unique File sheet.

上的 8 开始

我认为您的代码不起作用,因为您试图在唯一值 sheet.[=11= 上使用您从股票报告 sheet 创建的 "range" ]