类型不匹配错误:Excel VBA,循环列A for Value,删除当前行,并在其下方行直至下一个值



我对Excel有一个问题。我正在尝试通过A列中的一些数据循环,以将这些值与另一个表上的列表匹配。如果名称出现在表2上,则应选择该行并将其删除并删除随后在A列中具有空白单元格的所有行,直到它到达下一个非空单元。

我的建议取得了一些进步。这是我拥有的数据的较新的"现实生活"样本。

"原始"数据

这就是应该的样子。

处理的数据

我目前正在使用的VBA是:

Option Explicit
Sub RemoveDuplicates()
Application.ScreenUpdating = False
Dim rCrit As Range 'Range To Search For Supervisor names
Dim rFilt As Range 'Range To Remove Supervisor names
Dim lLoop As Long
Dim statsSheet As Worksheet
Dim supervisors As Worksheet

Dim i As Long 'looking for blank cells under the supervisor name
Dim values As Range
Dim counter As Integer
Set values = Range("a:a")


Set rCrit = Worksheets("supervisors").Range("A1", Worksheets
("supervisors").Range("A" & Rows.Count).End(xlUp))
Set rFilt = Worksheets("statssheet").Range("A1", Worksheets 
("statssheet").Range("A" & Rows.Count).End(xlUp))
For lLoop = rCrit.Rows.Count To 1 Step -1
    If WorksheetFunction.CountIf(rCrit, rFilt(lLoop).Value) > 0 Then
        Worksheets("statssheet").Rows(lLoop).Delete shift:=xlUp
End If
       For i = 1 To values.Cells.Count - 1
 If IsEmpty(values.Cells(i)) Then
 Worksheets("statssheet").Rows(i).Delete shift:=xlUp
 End If
Next i

Next lLoop
Application.ScreenUpdating = True
End Sub

不幸的是,当我运行此代码时,它只会消除顶级主管名称,并且它删除了每个同事的所有数据,并且看起来像这样。

这是当前正在发生的事情。

您的类型不匹配错误发生在" set values = lows(rfilt)"上。行属性参数应为整数,而不是范围。

示例:

Set values = Rows(3)
' This will return the first 3 rows of the active sheet.

我认为您的代码还有其他问题,但也许首先修复此问题,我们将从那里查看。

最新更新