我尝试在电子表格中构建的函数是"复制所选范围并过去到新范围,然后每次运行宏时,它都会执行相同的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:J13
和D21: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 技巧确定,用于确定包含数据的列中最后一行的行号。