首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制粘贴循环

复制粘贴循环
EN

Stack Overflow用户
提问于 2016-12-08 03:54:25
回答 1查看 572关注 0票数 0

我想让J3:N3 = T2:X2,然后我想复制T2:X2的单元格公式,然后粘贴,跳跃一个,然后粘贴等等。代码运行良好,但不会在任何单元格中应用我的公式。你知道我做错了什么吗?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2016-12-08 05:12:39

使用Excel UI记录宏有时可能很有用,但更重要的是以一种更好的方式编写代码来完成您想要的工作。此外,您还必须考虑将来更多地维护或开发代码,因此我建议删除所有指示使用UI的元素,例如激活工作表,或通过activecell、Select方法等从用户获取输入。

正如在前面的一条评论中提到的,使用Range("T2").FormulaR1C1 = "=R1C-10“可以解决您的问题,但是如果您考虑将两个范围作为起点和目的地,那么您总是可以更快、更好地完成这项工作,并且在以后使用最少的麻烦来参数提升代码:

代码语言:javascript
复制
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 Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41026194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档