首页 > 解决方案 > 将一行复制到模板上的特定单元格中

问题描述

您好我想将行中的单元格按顺序粘贴到模板上的特定单元格值,同时为每一行创建一个新的模板表。

视觉上我想要以下信息:

数据选项卡

像这样输入模板:

模板选项卡

我需要在下面添加什么才能做到这一点?该行是我想提取的顺序,只需要帮助组织脚本。

我有以下 VBA 脚本:

Sub distribute()
    Dim sh As Worksheet
    Dim k As Long, i As Integer
    Set sh = ThisWorkbook.Sheets("Data")
    k = sh.Range("A1048576").End(xlUp).Row

    For i = 1 To k

        Worksheets("Template").Copy After:=Sheets(Sheets.Count)
        sh.Rows(i).Copy Range("A2")

    Next

End Sub

谢谢堆栈溢出!!

这要感谢GMalc!

Sub distribute()
    Dim sh As Worksheet
    Dim k As Long, i As Integer
    Set sh = ThisWorkbook.Sheets("Data")
    k = sh.Range("A1048576").End(xlUp).Row

    For i = 2 To k
        With Worksheets("Template")
            .Cells(3,2).Value = sh.Cells(i,1).Rows()
            .Cells(3,4).Value = sh.Cells(i,2).Rows()        
            .Cells(8,4).Value = sh.Cells(i,3).Rows()
            .Cells(5,2).Value = sh.Cells(i,4).Rows()

            .Copy After:=Sheets(Sheets.Count)
        End With
    Next i

End Sub

标签: excelvba

解决方案


尝试这个..

Sub distribute()
    Dim sh As Worksheet
    Dim k As Long, i As Integer
    Set sh = ThisWorkbook.Sheets("Data")
    k = sh.Range("A1048576").End(xlUp).Row

    For i = 2 To k
        With Worksheets("Template")
            .Cells(3,2).Value = sh.Cells(i,1).Rows(i)
            .Cells(3,4).Value = sh.Cells(i,2).Rows(i)        
            .Cells(8,4).Value = sh.Cells(i,3).Rows(i)
            .Cells(5,2).Value = sh.Cells(i,4).Rows(i)

            .Copy After:=Sheets(Sheets.Count)
        End With
    Next i

End Sub

推荐阅读