我在列A中有数字。列C有一组较小的数字。我想创建一个宏,它将开始测试C中的每个值,如果它存在于A中,则从C3开始。如果它存在,我希望宏删除C中的值,并将列C中剩余的值向上移动,以便在数据之间不会有空单元格(注意:我不想删除整行)。然后宏应该继续测试C中的其他单元,直到找到一个空单元,然后它应该停止。Excel VBA查找列中的单元格值
请帮我写这段代码。我不是专家VBA。
我在列A中有数字。列C有一组较小的数字。我想创建一个宏,它将开始测试C中的每个值,如果它存在于A中,则从C3开始。如果它存在,我希望宏删除C中的值,并将列C中剩余的值向上移动,以便在数据之间不会有空单元格(注意:我不想删除整行)。然后宏应该继续测试C中的其他单元,直到找到一个空单元,然后它应该停止。Excel VBA查找列中的单元格值
请帮我写这段代码。我不是专家VBA。
试试这个:
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
你知道,你不必成为专家,以尝试的东西... –