【问题标题】:For Loop Copy and Paste Excel VBAFor循环复制和粘贴Excel VBA
【发布时间】:2017-07-12 12:11:59
【问题描述】:
Function Iterate()
Dim i As Integer
For i = 1 To 10
Worksheets("Calculator").Calculate
Worksheets("Calculator").Range("AC6:AC16").Copy  Destination:=Sheets("Iterations").Range("A1:A10")
Worksheets("Calculator").Range("AT10:AT11").Copy Destination:=Sheets("Iterationas").Range("A11:A12")
                         Worksheets("Iterations").Paste

Next

End Function

我的目标是根据需要多次运行此循环,并且在每个循环之后,我希望 excel 获取 Range("cells") 并将它们复制到“Iterations”工作表中。

计算器上的数据在每个循环中都会刷新,因此会出现新的计算。出现新的计算后,我想将其粘贴到另一个旁边(我不知道该怎么做)。

现在,这给了我一个运行时错误 Subscript it out of range

有什么建议吗?

【问题讨论】:

  • 是 AC6、AC16 变量吗?如果是这样,它们是如何定义的?如果不是,它们需要用引号引起来...并使用冒号而不是逗号...您在哪里学习此代码?没有意义
  • 我正在努力尽快掌握它。我更熟悉 Python 语法,并且每个循环、AC6、AC16 都因 randbetween() 函数而发生变化
  • 范围定义需要看起来更像这样Worksheets("Calculator").Range("AC6:AC16")
  • 是的,我更改了它,现在我处于运行时错误,下标超出范围。你知道我如何能够将数据一个接一个地粘贴到一列吗?
  • 改成什么了?你希望人们读懂你的想法吗?随时更新您的帖子,以便人们看到您所做的事情。

标签: excel vba


【解决方案1】:

我尝试了以下方法:

Option Explicit

Public Sub Iterate()

    Dim i As Long

    For i = 1 To 10
        Worksheets(1).Calculate
        Worksheets(1).Range("AC6:AC16").Copy Destination:=Worksheets(2).Range("A1:A10")
        Worksheets(1).Range("AT10:AT11").Copy Destination:=Worksheets(2).Range("A11:A12")
    Next

End Sub

它有效,只需确保您重命名 Worksheets(1) 和 (2) 相关。通常,当您希望返回一个值时,请使用Function。对于工作表中的更改,请使用Sub

通常,您希望在 cmets 中复制值并将它们放在相邻的列中。获取方法如下:

Option Explicit

Public Sub Iterate()

    Dim i As Long

    For i = 1 To 10
        With Worksheets(1)

        Worksheets(2).Calculate

        Worksheets(2).Range("AC6:AC16").Copy
        .Cells(1, i).PasteSpecial Paste:=xlPasteValues

        Worksheets(2).Range("AT10:AT11").Copy
        .Cells(1, i + 10).PasteSpecial Paste:=xlPasteValues

        Application.CutCopyMode = False
        End With
    Next

End Sub

【讨论】:

  • 谢谢.. 为了让我粘贴特殊,我应该只写 PasteSpecial:= (在每个工作表之后)吗?然后是我想要的社交贴?
  • 我有这个循环的原因是每次刷新时,excel页面都会生成新的数字来进行不同的计算。这就是我想粘贴 SpecialValues 的原因,在我运行 10 次之后,计算将显示在另一张表中,一列紧挨着另一列。
  • @YoavPoni - 我想我得到了你想要的。请参阅编辑后的答案。
  • 非常感谢! @Vityata
  • 执行宏时 Excel 文件出错是否有原因?
猜你喜欢
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
相关资源
最近更新 更多