我目前有两张包含六列数据的工作表,两种数据格式相同,但Sheet 1
包含历史数据,而sheet 2
包含更多数据和一些额外行。两张纸都按照第二列中的内容顺序排序,然后是第四列。
我想准备一个比较两个工作表并查看第2和第4列的宏,以确定Sheet 2
中不在Sheet 1
中的新行,并在{{1}中突出显示这些行的颜色}}。另外,我希望Sheet 2
中的新行以正确的顺序插入到Sheet 1中。
例如
执行所有这些操作的原因与仅将sheet 2
的全部内容复制到Sheet 2
相反,是因为Sheet 1
有超出6列的多个公式,这些公式引用了某些块细胞,并要求保留这些参考。我目前必须手动插入每个新行并给定正在处理的数据量,这需要相当长的时间。我已经尝试调整我在互联网上找到的其他宏来执行这项任务,但它们并没有完全奏效。
答案 0 :(得分:1)
使用以下公式在两个工作表中创建一个新列E:
=B2&D2
(从第2行开始并自动将其填充到整列)
sheet2中的使用此公式
创建列F.=ISERR(VLOOKUP(Sheet2!E2,Sheet1!E:E,1,FALSE))
现在,对于Sheet1中不包含的行,列F将为TRUE
。
接下来,您需要为F=TRUE
F=TRUE
答案 1 :(得分:0)
如果从Sheet1中的数据下面的Sheet2复制数据(不包括标题),随后a)删除重复项,然后b)对B和D列进行排序,您应该获得所需的结果。
Sub collect_and_sort()
With Sheets("sheet1")
Sheets("sheet2").Cells(1, 1).CurrentRegion.Offset(1, 0).Copy _
Destination:=.Cells(Rows.Count, 2).End(xlUp).Offset(1, -1)
With .Cells(1, 1).CurrentRegion
.RemoveDuplicates Columns:=Array(2, 4), Header:=xlYes
.Cells.Sort Key1:=.Columns(2), Order1:=xlAscending, _
Key2:=.Columns(4), Order2:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlYes
End With
End With
End Sub
从这样的两张纸上的数据(出于空间考虑显示在一张纸上),
宏运行后你会有这个。
我承认我不清楚Sheet1中的 3000 / b !B11:D11是否是拼写错误或实际重复记录。宏 重现您想要的结果。