在可变行上收集多个列值

时间:2019-01-30 02:19:38

标签: excel vba

我试图弄清楚如何将一张纸上的列范围值设置为另一张纸上的列范围值。我不想复制整个行,我只想针对特定的列,以免潜在地覆盖其他单元格内的重要信息。

当前,我的代码从工作表1的顶部开始,然后循环至底部。对于第4列中的每个值> 0,它将在工作表2的第4列中搜索相同的值。如果找到匹配项,我要将值从工作表1的x行上的10-13列复制到y上的10-13列工作表2的行。

我可以通过分别匹配每列中的值来完成这项工作,但是我似乎找不到合适的方法来为一系列列分配值。第一行代码是我目前可以使用的代码。第二行是我要复制的列值范围。

ws2.Cells(y, 4).Value = ws1.Cells(x, 4).Value
ws2.Range(y, 10:13).Value = ws1.Range(x, 10:13).Value

我尝试使用Union()方法,但是也许我不确定在这种情况下如何实现它。以下是我的其余代码。

Sub Upload()

Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim ws1LastRow As Long, ws2LastRow As Long
Dim ws1Row As Long, ws2Row As Long
Dim FindRow2 As Range

Application.ScreenUpdating = False

Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Sheet1")

Set wb2 = Application.Workbooks.Open("Sheet Address")
Set ws2 = wb2.Worksheets("Master")

ws1LastRow = ws1.Cells(Rows.Count, "A").End(xlUp).Row
ws2LastRow = ws2.Cells(Rows.Count, "A").End(xlUp).Row

For ws1Row = 2 To ws1LastRow

    Do While ws1.Cells(ws1Row, 4) <> ""

        ws2.Range("D:D").Find(What:=ws1.Cells(ws1Row, 4).Text, _
        LookIn:=xlValues).Select

        r = ActiveCell.Row  

        ws2.Cells(r, "B").Value = ws1.Cells(ws1Row, "B").Value

        ws1Row = ws1Row + 1

    Loop   

Next

End Sub

1 个答案:

答案 0 :(得分:-1)

Range.Resize(Rows, Columns)


ws2.Range("J" & y).Resize(, 3).Value = ws1.Range("J" & x).Resize(, 3).Value