2012-11-26 170 views
0

两个不相邻的列,列A和C,包含字符串和列E(再次不相邻的)应该包含列A和C之间的重复的字符串选择列和复制重复它们之间

现在我的主要问题是,列A和C是不同的长度,重复不是在同一行上。

当不使用VBA时,以下输入列E给出了除空白之外的解决方案。

=IF(ISERROR(MATCH(A1,$C:$C,0)),"",A1) 

例如:
列A
珀泰
番茄(Tomatoes)
花椰菜
胡椒
蘑菇

列C
蘑菇
黄瓜
西兰花

茴香

E栏应该是
蘑菇
西兰花

这是我已经能够到目前为止找到,但它是非常错误的。我发现自己无法解决问题。

Sub Duplicates() 
    Dim duplicates As Range 
    Set duplicates = Columns("A", "C") 
    activesheet.duplicates.Copy Destination:=activesheet.Range("E1") 
End Sub 

回答

1

...试试这个:

Sub PopulateColE() 

    Dim cl As Range 
    Dim CurrentRow As Integer: CurrentRow = 1 

    On Error Resume Next 

    For Each cl In Intersect(ActiveSheet.UsedRange, ActiveSheet.Range("C:C")) 
     Application.WorksheetFunction.Match cl.Value, Range("A:A"), 0 

     If Err.Number = 0 Then 
      Range("E" & CurrentRow).Value = cl.Value 
      CurrentRow = CurrentRow + 1 
     End If 

     Err.Clear 
    Next cl 
    End Sub 
+0

也就是说辉煌!谢谢!我会尝试,并真正明白你做了什么.. :-) –

+0

:) - 很高兴帮助 –

+0

虽然我们在这里(如果允许的话)另一个问题。我运行这个代码的列A和C(给E),然后我运行它也为A和B(给F)。是否有可能从列F中删除重复的E? –