当使用大型数据表时,表包含本质上是重复信息的情况并不少见。要处理表中的信息,您可能希望删除任何您认为重复的行,从而减少需要处理的信息量。

例如,假设每行的第一个单元格包含一个部件号。如果要删除第一个单元格中具有重复部件号的行,该怎么办?如果您需要此解决方案,则可以使用以下宏:

Sub DelDupRows()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim RightCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column     RightCol = ThisCol + rngSrc.Columns.Count - 1

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove rows with empty key cells     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Range(Cells(J, ThisCol), _               Cells(J, RightCol)).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

宏在调用之前对您所做的选择起作用。因此,如果需要从范围D7:G85中删除重复的行,只需选择该范围,然后运行宏即可。它从D7:D85范围中删除重复项,然后删除D7:G85中D列中的单元格为空的所有行(每行四列)。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2108)适用于Microsoft Excel 97、2000、2002和2003。