我想让J3:N3 = T2:X2,然后我想复制T2:X2的单元格公式,然后粘贴,跳跃一个,然后粘贴等等。代码运行良好,但不会在任何单元格中应用我的公式。你知道我做错了什么吗?
WsScenarios.Activate
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[1]C[-10]"
Range("T2").Select
Selection.AutoFill Destination:=Range("T2:X2"), Type:=xlFillDefault
Set RgnCopy = Range("T2:X2")
i = 4
Do While i <= LastRow
RgnCopy.Copy
Range(Cells(i, 20), Cells(i, 24)).PasteSpecial xlPasteFormulas
i = i + 2
Loop发布于 2016-12-08 05:12:39
使用Excel UI记录宏有时可能很有用,但更重要的是以一种更好的方式编写代码来完成您想要的工作。此外,您还必须考虑将来更多地维护或开发代码,因此我建议删除所有指示使用UI的元素,例如激活工作表,或通过activecell、Select方法等从用户获取输入。
正如在前面的一条评论中提到的,使用Range("T2").FormulaR1C1 = "=R1C-10“可以解决您的问题,但是如果您考虑将两个范围作为起点和目的地,那么您总是可以更快、更好地完成这项工作,并且在以后使用最少的麻烦来参数提升代码:
Sub CopyIt()
Dim rngOrigin As Range
Dim rngDestination As Range
Dim WS As Worksheet
Set WS = ActiveSheet
Set rngOrigin = WS.Range("T2:X2")
Set rngDestination = WS.Range("J3:N3")
rngDestination.NumberFormat = "General"
rngOrigin.Copy
rngDestination.PasteSpecial xlPasteFormulas
End Subhttps://stackoverflow.com/questions/41026194
复制相似问题