Vba 使原始数据与寄存器一致

Vba 使原始数据与寄存器一致,vba,excel,Vba,Excel,我有2张表-一张“寄存器”和一张“摘要”-我需要一个VBA脚本,可以附加到宏按钮上,以便将寄存器O列中的每个单元格(唯一数字)与摘要表中的D列匹配 如果有匹配项,我希望它复制汇总表同一行L列中的单元格,并将行涂成绿色,将该单元格粘贴到登记表的Q列-如果Q列中已有值,则将其添加到顶部(尽管登记表上的计划编号是唯一的,但汇总表上可能有多个条目) 然后它将循环到列O中的下一个单元格,以尝试查找下一个匹配项。这将满足您的要求: Sub foo() Dim RegisterLastRow As Long

我有2张表-一张“寄存器”和一张“摘要”-我需要一个VBA脚本,可以附加到宏按钮上,以便将寄存器O列中的每个单元格(唯一数字)与摘要表中的D列匹配

如果有匹配项,我希望它复制汇总表同一行L列中的单元格,并将行涂成绿色,将该单元格粘贴到登记表的Q列-如果Q列中已有值,则将其添加到顶部(尽管登记表上的计划编号是唯一的,但汇总表上可能有多个条目)


然后它将循环到列O中的下一个单元格,以尝试查找下一个匹配项。

这将满足您的要求:

Sub foo()
Dim RegisterLastRow As Long
Dim SummaryLastRow As Long
Dim UniqueLookUp As Variant
RegisterLastRow = Sheets("Register").Cells(Sheets("Register").Rows.Count, "A").End(xlUp).Row 'get the last row with data in Register
SummaryLastRow = Sheets("Summary").Cells(Sheets("Summary").Rows.Count, "A").End(xlUp).Row ' get the last row with data in Summary

For x = 2 To RegisterLastRow 'loop through Register from row 2 to end (excluding headers)
    UniqueLookUp = Sheets("Register").Cells(x, 15).Value 'get the unique value from column 15 = Column O
    For y = 2 To SummaryLastRow 'loop through Summary from row 2 to end (to exclude headers)
        If Sheets("Summary").Cells(y, 4).Value = UniqueLookUp Then 'if values match
            Sheets("Summary").Cells(y, 4).EntireRow.Interior.ColorIndex = 4 'color row in green
            Sheets("Register").Cells(x, 17).Value = Val(Sheets("Register").Cells(x, 17).Value) + Val(Sheets("Summary").Cells(y, 12).Value) 'add the values to column Q =17 on Register from Summary column L = 12
        End If
    Next y
Next x
End Sub

尝试在唯一列中循环,并通过直接(摘要中的另一个循环)或通过
工作表函数对其进行比较。Match
。到目前为止,您尝试了什么?请理解这不是“我告诉我想要什么,其他人为我做工作”网站。因此,您需要显示您已经尝试过的内容。您的问题和添加您尝试过的代码,告诉我们您在哪里被卡住或出现任何错误,以及在代码中的位置。也可以阅读,这可能有助于改进您的问题。难道您不能使用
VLOOKUP
来做这件事吗?您将它添加到顶部是什么意思?您能给我们举个例子吗?请查看以及,然后您的问题更详细地说明您尝试了什么以及您需要做什么。先生,您是一个天才。非常感谢您!