ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2027|回复: 8

[求助] 统计数字出现次数vba怎么写?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-4-28 22:17 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
统计数字出现次数vba怎么写?
000.rar (19.75 KB, 下载次数: 41)

TA的精华主题

TA的得分主题

发表于 2017-4-28 22:22 | 显示全部楼层
语文水平不够,等我找语文老师补补课以后再来看楼的主要求。

TA的精华主题

TA的得分主题

发表于 2017-4-28 22:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub test()
Dim s, i&, n&, n1&
For i = 1 To 95
    s = s & Cells(i, 1)
Next i
n = Len(s)
n1 = Len(Replace(s, "0", ""))
MsgBox n - n1
End Sub

TA的精华主题

TA的得分主题

发表于 2017-4-28 23:49 | 显示全部楼层
  1. Sub test()
  2.     Dim arr, arr2
  3.     arr = Range("A1").CurrentRegion.Value
  4.     arr2 = Range("L3:AE12").Value
  5.     For iCol = 1 To UBound(arr2, 2) Step 2
  6.         For iRow = 1 To UBound(arr2)
  7.             iTemp = arr2(iRow, iCol)
  8.             If Len(iTemp) > 0 Then
  9.                  For iRow2 = 1 To UBound(arr)
  10.                     iTemp2 = arr(iRow2, (iCol + 1) / 2)
  11.                     For l = 1 To Len(iTemp2)
  12.                         If iTemp = Mid(iTemp2, l, 1) + 0 Then
  13.                             arr2(iRow, iCol + 1) = arr2(iRow, iCol + 1) + 1
  14.                         End If
  15.                     Next
  16.                  Next
  17.             End If
  18.         Next
  19.     Next
  20.     Range("L3:AE12").Value = arr2
  21. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-4-28 23:50 | 显示全部楼层
参考学习 O(∩_∩)O

000(Bak)92337.rar

23.69 KB, 下载次数: 54

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-29 06:00 | 显示全部楼层

老师你好是这样的
第一列号码3统计数的是最多35次,6出现34次。。。。1出现最少19次,出现次数由大到小排列如下
3        35
6        34
7        33
9        31
0        31
8        29
2        26
5        24
4        23
1        19
10列的数都是这样统计的,请老师更改一下程序,谢谢老师
还有每次统计后把原来的统计数都删掉。

TA的精华主题

TA的得分主题

发表于 2017-4-29 09:32 | 显示全部楼层
Sub zz()
    Dim d, ar
    Application.ScreenUpdating = False
    Set d = CreateObject("Scripting.Dictionary")
    ar = Range("A1:J" & [a65536].End(3).Row)
    For j = 1 To UBound(ar, 2)
        For i = 1 To UBound(ar)
            s = s & ar(i, j)
        Next
        For x = 1 To Len(s)
            d(Mid(s, x, 1)) = d(Mid(s, x, 1)) + 1
        Next
        With Cells(3, 12 + n).Resize(d.Count, 2)
            .Value = Application.Transpose(Array(d.keys, d.items))
            .Sort Cells(3, 12 + n + 1), xlDescending, Header:=xlGuess
        End With
        s = "": n = n + 2: d.RemoveAll
    Next
    Application.ScreenUpdating = True
End Sub


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-4-29 09:42 | 显示全部楼层
没看见你的程序。


000.rar (25.67 KB, 下载次数: 41)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-4-30 01:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Dim kr, icount%

  2. Sub GetData()
  3.     Dim ar, i%, str$
  4.     [l3:ae65536].Clear
  5.     ar = Cells(1, 1).CurrentRegion
  6.     ReDim kr(1 To 10, 1 To UBound(ar, 2) * 2)
  7.     For i = 1 To UBound(ar, 2)
  8.         str = Join(Application.Transpose(Application.Index(ar, , i)))
  9.         icount = icount + 2: Call NumberCount(str, icount)
  10.     Next
  11.     Call iSort(kr)
  12.     [l3].Resize(10, icount) = kr
  13.     Erase kr: icount = 0
  14. End Sub
  15. Sub NumberCount(str, icount)
  16.     Dim i%
  17.     With CreateObject("vbscript.regexp")
  18.         For i = 0 To 9
  19.             .Pattern = "" & i & ""
  20.             .Global = True
  21.             kr(i + 1, icount - 1) = i: kr(i + 1, icount) = .Execute(str).Count
  22.         Next
  23.     End With
  24. End Sub
  25. Sub iSort(kr)
  26.     Dim i&, j&, k%, t1, t2
  27.     For k = 2 To UBound(kr, 2) Step 2
  28.         For i = UBound(kr) To 2 Step -1
  29.             For j = 1 To i - 1
  30.                 If kr(j, k) < kr(j + 1, k) Then
  31.                     t1 = kr(j, k): kr(j, k) = kr(j + 1, k): kr(j + 1, k) = t1
  32.                     t2 = kr(j, k - 1): kr(j, k - 1) = kr(j + 1, k - 1): kr(j + 1, k - 1) = t2
  33.                 End If
  34.             Next
  35.         Next
  36.     Next
  37. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 03:00 , Processed in 0.050999 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表