您的位置:首页 > 编程语言 > VB

excel 同一工作表中非连续区域中筛选唯一值 (VBA代码)

2010-06-12 16:20 567 查看
Sub 筛选唯一值()    '筛选唯一值

Dim Des    As New Collection
Dim Newsheet As Worksheet
Dim Oldsheet As Worksheet
Dim ItemX  As Variant
Dim Rg     As Range
Dim i      As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next

For Each Rg In Selection

If Rg <> "" Then Des.Add Rg.Value, CStr(Rg.Value)

Next

On Error GoTo 0

For Each Oldsheet In Worksheets

If Oldsheet.Name = "FilterSheet" Then Oldsheet.Delete

Next

Set Newsheet = Worksheets.Add
Newsheet.Name = "FilterSheet"
i = 1

For Each ItemX In Des

Newsheet.Cells(i, 1).Value = ItemX
i = i + 1

Next

Range("A1").Sort KEY1:=Columns("A")
Application.ScreenUpdating = True
Application.DisplayAlerts = False
Set Des = Nothing
Set Newsheet = Nothing
Set Oldsheet = Nothing

End Sub


简写一段代码,活用了一下Collection对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: