在VBA中满足条件时将行从一张纸粘贴到另一张纸

时间:2019-01-15 02:13:43

标签: excel vba

我有一个宏,其中包含生成报告所需要做的所有工作,目前我需要将新表中的新数据合并到原始表中。如果我们可以这样称呼它,那便是某种JOIN。

srcWorkbook中,我们有地址之类的东西,那个时间是谁负责的,还有日期/ id时间戳。 outWorkbook中有供应商的个人数据等。

Output table / New data table / Output table (after running macro)

要合并两个文件,我要在两个文件中匹配id_dateid_hr,因此,如果srcWorkbookoutWorkbook id匹配,请抓住srcWorkbook行并将其粘贴到outWorkbook的一侧。

我试图做一个for / if语句,它看起来很明显,但是没有粘贴新行。我还尝试了VLOOKUP,但我希望坚持使用基本声明以备将来修改。

Sub popularSubG()
'File calling here and index variables
'Cells
' cell Src
Dim cellSrcPerPro As Long
Dim cellSrcIDHR As Long

' cell Out
Dim cellOutPerPro As Long
Dim cellOutIDHR As Long

For indexRowSrc = 2 To indexLastRowSrc
    cellSrcPerPro = srcWorkbook.Cells(indexRowSrc, "A").Value
    cellSrcIDHR = srcWorkbook.Cells(indexRowSrc, "B").Value

    cellOutPerPro = outWorkbook.Cells(indexRowSrc, "A").Value
    cellOutIDHR = outWorkbook.Cells(indexRowSrc, "B").Value

    If cellSrcPerPro = cellOutPerPro & cellSrcIDHR = cellDestinoIDHR Then
        indexRowOut = indexRowOut + 1
        srcWorkbook.Sheets(1).Cells(2, "C").EntireRow.Copy Destination:=outWorkbook.Sheets(1).Range("O" & Rows.Count).End(xlUp).Offset(0)
    End If
Next indexRowSrc
MsgBox "Sub ended"
End Sub

0 个答案:

没有答案