Excel vba用于查找列中的单元格值

时间:2013-12-22 17:20:29

标签: excel vba excel-vba

我在A栏中有数字.C列的数字较小。我想创建一个宏,它将开始测试C中的每个值,如果它存在于A中,从C3开始。如果它存在,我希望宏在C中删除该值并向上移动C列中的任何内容,这样我就不会在数据之间有空单元格(注意:我不想删除整行)。然后宏应该继续测试C中的其他单元格,直到它找到一个空单元格,然后它应该在那里停止。

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

1 个答案:

答案 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