簡體   English   中英

循環下拉和復制粘貼

[英]Loop through dropdown and copy-paste

我正在嘗試遍歷下拉列表中的所有值,其源在工作表“Comm O & S”中,范圍 A31:L31。

我想從另一個工作表中復制由下拉列表中的選擇產生的值,並將這些值粘貼到單獨工作表的列中(從 C 列開始)。 然后,我想在下拉列表中選擇下一個值並復制粘貼下一列中的值,等等。

我在下拉循環中遇到復制粘貼問題。

Sheets("Scenario by Payer").Activate
For Each rngCell In wb.Worksheets("Comm O & S").Range("A31:L31")
    ' Set the value of dd_comm
    ws.Range("D14").Value = rngCell.Value

    Sheets("Detailed Outputs").Select
    Range("T52:t60").Select
    Application.CutCopyMode = False
    Selection.Copy

    Sheets("Comm O & S").Activate

    For Each c In ActiveSheet.Range("C7:L7").Cells
        c.Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
          :=False, Transpose:=False

    Next rngCell
Next c

試試這個:

Sub tgr()

    Dim wb As Workbook
    Dim wsScen As Worksheet
    Dim wsComm As Worksheet
    Dim wsOuts As Worksheet
    Dim rDDList As Range
    Dim rDDCell As Range
    Dim rDDValue As Range
    Dim rCopy As Range
    Dim rDest As Range

    Set wb = ActiveWorkbook
    Set wsScen = wb.Sheets("Scenario")
    Set wsComm = wb.Sheets("Comm O & S")
    Set wsOuts = wb.Sheets("Detailed Outputs")

    Set rDDList = wsComm.Range("A31:L31")
    Set rDDValue = wsScen.Range("D14")
    Set rCopy = wsOuts.Range("T52:T60")
    Set rDest = wsComm.Range("C7")

    For Each rDDCell In rDDList.Cells
        rDDValue.Value = rDDCell.Value
        rDest.Resize(rCopy.Rows.Count, rCopy.Columns.Count).Value = rCopy.Value
        Set rDest = rDest.Offset(, rCopy.Columns.Count)
    Next rDDCell

End Sub

暫無
暫無

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

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