簡體   English   中英

VBA復制和粘貼循環

[英]VBA COPY AND PASTE IN A LOOP

我是VBA的新手,並且需要一些有關此問題的幫助。

我有8列,每列有9行。 我想復制每列並將其粘貼到特定范圍的另一張紙上。

我如何編碼以下語句? “轉到sheet2並復制第一列和2-9行,然后將其粘貼到范圍(“ C3:C10”)中的sheet1中,然后按求解器執行其他一些操作,完成所有這些操作后轉到下一列並執行再次一樣”。

我發現如何對一列進行此操作,但找不到循環。 這是我為第一列編寫的代碼。 我想對所有8列都做同樣的事情。

Sub test1()

Worksheets("sheet 1").Range("c3:c10").Value = Worksheets("Sheet 2").Range("A2:A9").Value
Worksheets("Sheet 1").Range("C17").Value = "Y"
Worksheets("Sheet 1").Range("C32").Value = "Y"
        SolverOk SetCell:="$E$96", MaxMinVal:=3, ValueOf:=Range("C104").Value, 
            ByChange:="$C$100", _
            Engine:=1, EngineDesc:="GRG Nonlinear"
        SolverSolve True

Worksheets("Sheet 3").Range("J2").Value = Worksheets("Sheet 1").Range("L24").Value

End Sub

而不是使用Range(“”),我將使用.Cells(row,col)在列之間循環,例如:

Sub Iteration()

    For c = 1 To 9
        Sheets("Sheet1").Cells(1, c).EntireColumn.Copy
        Sheets("Sheet2").Cells(1, c).PasteSpecial
    Next

End Sub

該代碼通過遍歷引用一列的“ Cells”第二個參數,將第1列和第9列之間的每一行從Sheet1復制到Sheet2。

並且由於“ For”循環,代碼可以執行此操作,該循環不斷重復直到達到條件為止。 在我的示例中,我將“ c”設置為1,並要求在“ For-Next”語句中重復執行代碼,直到c達到9,默認情況下將1加到變量中。

您可以這樣做。 如果其他事情是可變的,也許可以使用i進行類似的調整。

Sub test1()

Dim i As Long

For i = 1 To 8
    Worksheets("sheet 1").Range("c3:c10").Value = Worksheets("Sheet 2").Range("A2:A9").Offset(, i - 1).Value
    Worksheets("Sheet 1").Range("C17").Value = "Y"
    Worksheets("Sheet 1").Range("C32").Value = "Y"
    SolverOk SetCell:="$E$96", MaxMinVal:=3, ValueOf:=Range("C104").Value, _
             ByChange:="$C$100", Engine:=1, EngineDesc:="GRG Nonlinear"
    solverSolve True
    Worksheets("Sheet 3").Range("J2").Value = Worksheets("Sheet 1").Range("L24").Value
Next i

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM