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

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

2010-06-19 16:34 661 查看
Sub 取不重复值()
Dim Cel As Range
Dim itm As Variant, i As Variant
Dim MyList As New Collection
Dim SelectArea As Range

'Application.ScreenUpdating = False

On Error Resume Next
For Each Cel In Selection
If Cel <> "" Then MyList.Add Cel.Value, CStr(Cel.Value)
Next
On Error GoTo 0

Set SelectArea = Selection

Do While True
DoEvents
If Selection.Address <> SelectArea.Address Then Exit Do
Loop

i = 0
For Each itm In MyList
Cells(Selection.Row + i, Selection.Column).Value = itm
i = i + 1
Next
End Sub


应要求将上次的改了一下, 运用DOEVENTS来选择输出单元格。期间总是出现doevents不起作用的情况。后来发现,一定要把ScreenUpdating打开才行。也是一点经验的积累吧。

虽然这个完全可以通过数据透视来实现,但是还是从做这个小模块的过程中学到不少东西。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: