打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA 找出选定范围不重复值和重复值
Sub 找出选定范围内不重复的值() 
    On Error Resume Next 
   
    Dim As Object 
    Set d = CreateObject("scripting.dictionary"
    For c_i = 1 To selection.Columns.Count 
    For Each ce In selection.Columns(c_i).Cells 
        'd.Add ce.Value, 1 
        If ce <> "" Then 
            'D(ce.Value) = "" 
            If d.Exists(ce.Value) Then 
                d(ce.Value) = d(ce.Value) + 1 
            Else 
                d(ce.Value) = 1 
            End If 
        End If 
    Next 
    Next 
    'Debug.Print d.Count 
    If MsgBox("是否在邻列显示出现次数?", vbYesNo, "统计次数") = vbYes Then 
        标记 = True 
    End If 
    e = InputBox("希望在那个单元格下生成结果:""结果输出", Chr(97 + selection.Columns(1).Cells(1).Column + 2) & selection.Columns(1).Cells(1).row) 
    m = Left(e, 1) 
    jj = Mid(e, 2, 1) 
    Range(m & jj) = "不重复值" 
    If 标记 = True Then 
        Range(Chr((Asc(m) + 1)) & jj) = "频率" '大于1的值 
    End If 
    For Each Key In d.Keys 
        Range(m & (jj + 1)) = Key 
        If 标记 = True Then 
'            If d(Key) > 1 Then Range(Chr((Asc(m) + 1)) & (jj + 1)) = d(Key) 
    Range(Chr((Asc(m) + 1)) & (jj + 1)) = d(Key) 
        End If 
        jj = jj + 1 
    Next 
    Set d = Nothing 
    '最后进行排序 
'     Range(m & selection.Columns(1).Cells(1).row & ":" & Chr((Asc(m) + 1)) & (jj)).Select 
    Range(e & ":" & Chr((Asc(m) + 1)) & (jj)).Sort Key1:=Range(m & Mid(e, 2, 1) + 1), Order1:=xlAscending, HEADER:=xlYes _ 
    , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
    SortMethod:=xlPinYin, DataOption1:=xlSortNormal 
End Sub 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
类模块-通用打印模块(测试通过)
DBGridEh的内容导出excel
VBA遍历函数、超链接与控件运用
Excel VBA
将该行指定区域为0的选中
源码学习
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服