根据其他工作表中的值在工作表中插入行

时间:2019-05-29 12:03:35

标签: excel vba

我在工作簿中有2个工作表,两个工作表都有2列,如下图所示

第1张:

Sheet 1

第2张:

Sheet 2

我正在尝试比较两个工作表的列(Comp),如果找到匹配项,则复制工作表2中的所有(垫)数据,并将它们插入到工作表1中的FLOC下,如结果所示:

Sheet Results

到目前为止,我已经尝试读取两个文件并比较成功的结果,但是我无法理解如何循环遍历第二张工作表以将行复制并插入到工作表1中,我的代码如下

Sub Coupler()

    Dim ws As Worksheet
    Dim x As Long
    Dim y As Long
    Dim z As Long

    x = 0
    y = 0
    z = 0

    Application.EnableCancelKey = xlErrorHandler

    Set FLOCSheet = Application.ActiveWorkbook.Worksheets("FLOC")
    Set MATSheet = Application.ActiveWorkbook.Worksheets("MAT")

    lrFLOC = FLOCSheet.Cells(Rows.Count, 2).End(xlUp).Row
    lrMAT = MATSheet.Cells(Rows.Count, 2).End(xlUp).Row

    For x = 2 To lrFLOC
        For y = 2 To lrMAT
        If (StrComp(Trim(FLOCSheet.Cells(x, 2).Value), Trim(MATSheet.Cells(y, 1).Value), vbTextCompare) = 0) Then

        FLOCSheet.Rows(x & ":" & x + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

            FLOCSheet.Cells(x,1) = MATSheet.Cells(ws.Rows.Count, 1).End(xlUp).Row
            For z = lrFLOC To 1 Step -1
            FLOCSheet.Rows(z & ":" & z + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            FLOCSheet.Range(FLOCSheet.Cells(z, 1), MATSheet.Cells(z + 1, 1)) = MATSheet.Cells(z + 2, 1).Value
            Next z

        Next y
    Next x


End Sub

0 个答案:

没有答案