我在使用 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
不幸的是,当我运行此代码时,它只会删除最高主管名称,并且会删除每个员工的所有数据,看起来像这样。