簡體   English   中英

VBA循環復制列

[英]VBA Loop to Copy Columns

我想從一張工作表(“數據”)中復制定義的行數(比如說10行),然后將其粘貼到另一張工作表(“輸入”中),這將導致大量計算工作,然后我要復制計算出的行數從(“輸入”)到(“數據”)的數據(6行),然后粘貼到結果表中。然后,我將對特定數量的列(例如10)重復定義的次數。

我嘗試編寫代碼,但是從編寫代碼到現在已經有好幾年了。

我使用了Record Marco的東西並得到了這個:

Sub Macro2()
'
' Macro2 Macro
'

'
    Range("C5:C14").Select
    Selection.Copy
    Sheets("Input").Select
    Range("C5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("P12:P19").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Data").Select
    Range("C22").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D5:D14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Input").Select
    Range("C5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("P12:P19").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Data").Select
    Range("D22").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G16").Select
End Sub

我希望這是有道理的

Sub Macro2()

    Const NUM_TIMES As Long = 10
    Dim shtInput As Worksheet, shtData As Worksheet
    Dim rngCopy As Range, i As Long

    Set shtInput = Sheets("Input")
    Set shtData = Sheets("Data")

    Set rngCopy = shtData.Range("C5:C15")

    For i = 1 To NUM_TIMES

        With shtInput
            .Range("C5").Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
            .Calculate
            rngCopy(1).Offset(17, 0).Resize(8, 1).Value = .Range("P12:P19").Value
        End With

        Set rngCopy = rngCopy.Offset(0, 1)
    Next i

End Sub

暫無
暫無

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

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