[英]For Loop Copy and Paste Excel VBA
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”工作表中。
計算器上的數據在每個循環中都會刷新,因此會出現新的計算。 一旦出現新的計算,我想將其粘貼到另一個(我不知道該怎么做)。
現在,這給了我一個運行時錯誤,使它的下標超出范圍
有什么建議嗎?
我嘗試了以下方法:
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
。
通常,在注釋中您想要的是復制值並將它們放在彼此相鄰的列中。 這是如何獲取它:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.