将Excel工作表和复制行之间的值匹配到另一个工作表

时间:2012-10-15 20:25:38

标签: excel excel-vba excel-formula vba

我的Excel文件中有3个工作表。缺少(25,000行),有效(18,000行)和匹配(空白)。

我需要比较缺失和有效D列中的值,并将所有匹配的所有行复制到匹配表。

如果我能以某种方式进行通配符搜索,这也很不错,例如ABBOTT LABORATORIES匹配ABBOTT LAB的方法。如果那是不可能的,那么如果有办法突出显示已匹配的行,那么我可以手动查找通配符匹配将非常感激。

这是我尝试过的,我是通过谷歌发现的,但我并不完全理解这些代码。它运行了几分钟没有错误,但没有提取任何数据:

Sub CopyRows() 
Dim cell As Range 
Dim found As Range 
Dim dcol 
Dim bcol 
Dim totalrows1 As Long 
Dim totalrows2 As Long 

totalrows1 = Sheets("Valid").UsedRange.Rows.Count 
bcol = "$D$2:$D$" & totalrows1 
totalrows2 = Sheets("Missing").UsedRange.Rows.Count 
dcol = "$D$2:$D$" & totalrows2 
For Each cell In Sheets("Valid").Range(bcol) 
    If Not Sheets("Missing").Range(dcol).Find(What:=cell.Value, LookAt:=xlWhole) Is Nothing Then 
        Set found = Sheets("Missing").Range(dcol).Find(What:=cell.Value, LookAt:=xlWhole) 
        If found.Offset(0, -3).Value = cell.Offset(0, 1).Value And found.Offset(0, -2).Value = cell.Offset(0, -1).Value Then 
            cell.Offset(0, 2).Value = found.Offset(0, -1).Value 
        End If 
    End If 
Next cell
End Sub 

1 个答案:

答案 0 :(得分:0)

不管理近似匹配,否则:合并缺失和匹配有效,在ColumnD上排序然后应用带条件格式的突出显示来识别相邻匹配的'D'值。过滤并删除未突出显示的内容。审核SU486330可能会有所帮助。