利用EXCEL的高级筛选可以从一列中提取出不重复的数据,但是EXCEL的这一功能无法对多列单元格进行操作。本方法提供的VBA脚本可以实现从多个单元格区域中提取不重复数据的功能。
前期准备工作(包括相关工具或所使用的原料等)
EXCEL详细的操作方法或具体步骤
激活要操作的工作表,右键单击工作表名称,在弹出的快捷菜单中点击“查看代码”,在弹出的窗口中贴入以下代码:
Sub 提取不重复的数据()
Dim rngSrc As Range, rngDes As Range, rng As Range, rngPt As Range
Set rngSrc=Application.InputBox("请选择提取区域", "提示", , , , , , 8)
If rngSrc.Columns.Count > rngSrc.Parent.UsedRange.Columns.Count Then
Set rngSrc=rngSrc.Parent.Range(rngSrc.Item(1, 1), rngSrc.Item(rngSrc.Rows.Count, rngSrc.Parent.UsedRange.Columns.Count))
End If
If rngSrc.Rows.Count > rngSrc.Parent.UsedRange.Rows.Count Then
Set rngSrc=rngSrc.Parent.Range(rngSrc.Item(1, 1), rngSrc.Item(rngSrc.Parent.UsedRange.Rows.Count, rngSrc.Columns.Count))
End If
Set rngDes=Application.InputBox("请选择数据保存区域", "提示", , , , , , 8)
Set rngDes=rngDes.Item(1, 1)
Set rngPt=rngDes
Application.ScreenUpdating=False
On Error Resume Next
For Each rng In rngSrc
If rng <> "" Then '跳过空白单元格
If Application.WorksheetFunction.CountIf(rngDes, rng.Value)=0 Then
rngPt.Value=rng.Value
Set rngDes=Union(rngDes, rngPt)
Set rngPt=rngPt.Offset(1)
End If
End If
Next rng
rngDes.Parent.Activate
rngDes.Select
End Sub


运行宏“提取不重复的数据”,按提示操作即可得到结果。可以同时选择多个区域。如何运行宏,及宏安全设置,请另行百度。



- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
