2013-12-22 81 views
-1

我在列A中有数字。列C有一组较小的数字。我想创建一个宏,它将开始测试C中的每个值,如果它存在于A中,则从C3开始。如果它存在,我希望宏删除C中的值,并将列C中剩余的值向上移动,以便在数据之间不会有空单元格(注意:我不想删除整行)。然后宏应该继续测试C中的其他单元,直到找到一个空单元,然后它应该停止。Excel VBA查找列中的单元格值

请帮我写这段代码。我不是专家VBA。

+0

你知道,你不必成为专家,以尝试的东西... –

回答

0

试试这个:

Sub KleanC() 
Dim Kill As Range, A As Range, C As Range, r As Range 
Dim wf As WorksheetFunction, N As Long 
Set wf = Application.WorksheetFunction 
Set A = Range("A:A") 
Set C = Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row) 
For Each r In C 
    On Error Resume Next 
    v = r.Value 
    N = wf.Match(v, A, 0) 
    If Err.Number = 0 Then 
     If Kill Is Nothing Then 
      Set Kill = r 
     Else 
      Set Kill = Union(r, Kill) 
     End If 
    Else 
     Err.Number = 0 
     On Error GoTo 0 
    End If 
Next r 
If Kill Is Nothing Then 
Else 
    Kill.Delete (xlShiftUp) 
End If 
End Sub 
+0

完美!谢谢你这么多=) – user3127527

+0

你很欢迎! –

+0

你们这么快就有才华!从我输入问题到获得完美代码的答案之后,只花了几分钟的时间! – user3127527

相关问题