【问题标题】:Moving ranges to copy and paste in Excel VBA移动范围以在 Excel VBA 中复制和粘贴
【发布时间】:2015-04-28 19:01:00
【问题描述】:

我正在尝试设置一个宏以从工作表中选择数据 (1),将该数据粘贴到另一个工作表中 (2),然后从工作表 (2) 中获取结果并将该信息粘贴到工作表 (3) 中。我遇到的问题是将范围向下移动到要从工作表(1)复制的下一组数据,以及从工作表(2)获取结果以粘贴到工作表(3)中最后一个结果下方的行中。

似乎我尝试过的代码没有移动到要复制的新数据,并且在复制工作表 (2) 中的方程式结果之前没有足够的时间过去。以下是我尝试过但不起作用的代码:

Sub COPY_PASTE_MLR_10()

Application.ScreenUpdating = False

Dim Y As Integer, X As Integer, I As Integer


'COPY DATA TO EQUATIONS

For I = 4 To 255
Y = I
X = I + 10

Sheets("QDATA").Range("G4:G14").COPY _
Destination:=Sheets("R10").Range("A5")

Sheets("QDATA").Range("OI:OI+10").COPY _
Destination:=Sheets("R10").Range("C5")

Sheets("QDATA").Range("WI:WI+10").COPY _
Destination:=Sheets("RLR10").Range("D5")

Sheets("QDATA").Range("AC4:AC14").COPY _
Destination:=Sheets("R10").Range("E5")

Sheets("QDATA").Range("AN4:AN14").COPY _
Destination:=Sheets("R10").Range("F5")

Sheets("QDATA").Range("BA4:BA14").COPY _
Destination:=Sheets("R10").Range("G5")

Sheets("QDATA").Range("BI4:BI14").COPY _
Destination:=Sheets("R10").Range("H5")

Sheets("QDATA").Range("BQ4:BQ4").COPY _
Destination:=Sheets("R10").Range("I5")


'COPY RESULTS TO '10 RESULTS'

Sheets("R10").Range("J5:K5").COPY
Sheets("10 RESULTS").Range("B2:C2").PasteSpecial Paste:=xlPasteValues

Sheets("R10").Range("J6:K6").COPY
Sheets("10 RESULTS").Range("D2:E2").PasteSpecial Paste:=xlPasteValues

Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 我不明白你的Next声明在哪里?

标签: vba excel


【解决方案1】:

您有一些循环迭代器变量,但您没有正确使用它们。试试这个:

For I = 4 To 255
    Y = I
    X = I + 10

    Sheets("QDATA").Range("G" & Y & ":G" & X).COPY _
    Destination:=Sheets("R10").Range("A" & Y+1)

【讨论】:

  • 感谢您的帮助,但现在我遇到了编译错误。将对其进行更多研究。再次感谢
  • 更新您的问题以包含您当前的、修改后的代码,并让我知道哪一行引发了编译错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多