-1

就上下文而言,我有一个工作表,其中 A 列中的职位名称,然后在 B 列中,它具有从事该工作的人的姓名。但是,由于它是从多个项目中填充的,因此某些职位名称在行中有重复项,其中同一个人在不同的项目中执行相同的工作。我需要做的是从每一行中删除重复项。我尝试过的所有解决方案都给了我错误。

任何人都可以帮忙吗?

数据使用 VBA 获取其当前形式,从另一张表中复制它,因此如果它可以集成到复制中,那将不是问题。

更新:所以在宏的早期部分,我必须这样做,但是对于单个列。这有效:

 For np = lastRow To 1 Step -1
    If Application.WorksheetFunction.CountIf(Range("D1:D" & np), Range("D" & np).Text) > 1 Then
    Range("D" & np).ClearContents
    End If
    Next np

但是,当我尝试在此循环之外添加另一个循环并将 D1:D 更改为变量时,我摔倒了。

我想要它做的是从图片中的前 4 行到最后 4 行。我有 78 个工作,其中一些有 20 人,包括重复的http://picture.ms/images/2013/ 09/18/Capture1.png

SO18879773 问题示例

4

1 回答 1

0

如果你想使用两个循环,这样的事情怎么样

Sub RemoveDuplicates()

Dim i As Integer
Dim j As Integer

For i = 1 To Range("A65536").End(xlUp).Row

     For j = i + 1 To Range("A65536").End(xlUp).Row
        If Cells(i, 1) = Cells(j, 1) Then
            If i <> j Then
                'just clear the duplicate cell...
                Cells(j, 1).ClearContents

                'or to delete the entire row if a duplicate is found...
                'Cells(j, 1).EntireRow.Delete
            End If
        End If
   Next

 Next

End Sub

注意 - 我已经使用 Range("A65536").End(xlUp).Row 来获取 A 列中的最后一行数据,在 Excel2007 及更高版本中,工作表上有更多行,但听起来你的数据要少得多反正比这个

于 2013-09-19T14:05:01.230 回答