将范围复制并粘贴到新目标



我尝试在电子表格中构建的函数是"复制所选范围并过去到新范围,然后每次运行宏时,它都会执行相同的copy.paste.range到新范围,但粘贴目标将从以前的粘贴值开始。该函数是每周的收集统计信息,宏将自动收集日期。

我有初始步骤工作,但它粘贴公式而不仅仅是值。我添加了粘贴特殊功能,但现在根本不起作用。粘贴后,我正在寻找下一个复制和粘贴,以继续粘贴到 D21:J27 中的数据,例如 D28:J34(也许偏移?

Sub CopyPaste_Weeklys()
Sheets("MI Build").Range("D7:J13").Copy
Sheets("MI Build").Activate
Range("D21:J27").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNoneActiveSheet.Paste
Application.CutCopyMode = False
End Sub

任何帮助将不胜感激。

谢谢

加里

如果你只想将 D7:J13 中的值复制到 D21:J27 ,你的整个 sub 可以替换为:

Sub CopyPaste_Weeklys()
    Sheets("MI Build").Range("D21:J27").Value = Sheets("MI Build").Range("D7:J13").Value
End Sub

在VBA中,复制/粘贴应保留用于需要复制公式和格式等内容的情况。对于值,最好只使用相应范围的 Value 属性。

据推测,范围并不总是D7:J13D21:J27,但您的问题没有提供有关如何确定范围的信息。上面的固定范围可以替换为可在运行时设置的范围变量。以下几行:

Sub CopyPaste_Weeklys()
    Dim i As Long
    Dim target As Range
    With Sheets("MI Build")
        i = .Cells(.Rows.Count, "D").End(xlUp).Row + 1
        Set target = Range(.Cells(i, "D"), .Cells(i + 6, "J"))
        target.Value = .Range("D7:J13").Value
    End With
End Sub

变量i由标准 Excel VBA 技巧确定,用于确定包含数据的列中最后一行的行号。

最新更新