用VBA代码实现不连续列的数据vba 统计符合条件个数

查看: 3788|回复: 11
如何统计每一个表某一列的项目数
阅读权限10
在线时间 小时
我需要统计我的每一个工作表里面某一列的个数(重复的算一个),应该怎么编写代码呢,请高手赐教。。
附件里面有详细说明。。[em01]
13:21 上传
点击文件名下载附件
9.23 KB, 下载次数: 25
阅读权限95
在线时间 小时
为什么不用公式呢??
阅读权限95
在线时间 小时
原帖由 楠枫寒 于
13:21 发表
我需要统计我的每一个工作表里面某一列的个数(重复的算一个),应该怎么编写代码呢,请高手赐教。。
附件里面有详细说明。。[em01]
参考。。。
14:13 上传
点击文件名下载附件
16.78 KB, 下载次数: 27
阅读权限10
在线时间 小时
原帖由 wudixin96 于
13:29 发表
为什么不用公式呢??
公式怎么用的好呢?我还是不懂::L
阅读权限95
在线时间 小时
例如:=SUM(1/COUNTIF(月塘村!O6:O25,月塘村!O6:O25))数组公式
这是月塘村的
阅读权限10
在线时间 小时
回复 3楼 yaozong 的帖子
谢谢yaozong的指点,我运行了下,发现这个宏只能统计前面的四个工作表,多于四个就统计不出来了,还有没有最后的自动求和。嗯,自动求自己手动好办,只是多于四个表的那种应该怎么办的好呢?
阅读权限10
在线时间 小时
回复 5楼 wudixin96 的帖子
嗯,虽然这个只是一个一个表来做的,不过您的指点也给我明白了一种方法,谢谢您。[em01]
阅读权限95
在线时间 小时
短信收到,请验证
(13.1 KB, 下载次数: 18)
17:09 上传
点击文件名下载附件
阅读权限95
在线时间 小时
短信收到:
Sub Macro1()
& & Dim arr, brr(), sh As Worksheet, d As Object, i&, m&, n&
& & Set d = CreateObject(&scripting.dictionary&)
& & ReDim brr(1 To Sheets.Count - 1, 1 To 5)
& & For Each sh In Sheets
& && &&&If sh.Name && ActiveSheet.Name Then
& && && && &m = m + 1
& && && && &arr = sh.[a4].CurrentRegion
& && && && &n = 0
& && && && &brr(m, 1) = sh.Name
& && && && &brr(m, 2) = arr(UBound(arr) - 3, 10)
& && && && &brr(m, 3) = arr(UBound(arr) - 3, 11)
& && && && &For i = 4 To UBound(arr) - 4
& && && && && & If Len(arr(i, 2)) Then
& && && && && && &&&n = n + 1
& && && && && && &&&d(Split(arr(i, 15), &/&)(0)) = &&
& && && && && & End If
& && && && &Next
& && && && &brr(m, 4) = n
& && && && &brr(m, 5) = d.Count
& && && && &d.RemoveAll
& && &&&End If
& & Range(&A4:E& & Range(&A65536&).End(xlUp).Row + 1).ClearContents
& & [a4].Resize(m, 5) = brr
& & Cells(m + 5, 1) = &合计&
& & Cells(m + 5, 2).Resize(, 4) = &=SUM(R[-& & m + 1 & &]C:R[-2]C)&
阅读权限95
在线时间 小时
(12.88 KB, 下载次数: 35)
17:37 上传
点击文件名下载附件
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师用VBA统计某列不重复单元格的个数_百度知道查看: 236|回复: 13
大神求助两列相同数值统计出数量,进行比较得出差异,谢谢帮忙
阅读权限20
在线时间 小时
1,把B列单元格相同的值,计算出数量,
2,再把D列单元格相同的值,计算出数量,
3.用左边的减去右边的,差异显示在中间,最好正数不显示,只显示负数且负数有颜色,如果不能就算了,正常显示差异就可以。计算出的结果最好显示在G,H,I,J,K,列。如附件所示
(12.99 KB, 下载次数: 7)
09:38 上传
点击文件名下载附件
阅读权限20
在线时间 小时
在H2输入=COUNTIF(B:B,G2)
在K2输入=COUNTIF(D:D,J2)
选中I列设置自定义格式;[红色]-0;;@
11:59 上传
点击文件名下载附件
13.61 KB, 下载次数: 1
阅读权限20
在线时间 小时
在H2输入=COUNTIF(B:B,G2)
在K2输入=COUNTIF(D:D,J2)
选中I列设置自定义格式;[红色]-0;;@
谢谢你的回答,我没有描述清楚,就是两列的值会变的,还是很谢谢你,我在继续提问。
阅读权限20
在线时间 小时
& & & & & & & &
出来了,你看看
15:13 上传
点击文件名下载附件
13.71 KB, 下载次数: 9
阅读权限20
在线时间 小时
出来了,你看看
谢谢你的热心回答,已经解决问题,让大神做的VBA,因为B,D两列是会变动的。
阅读权限20
在线时间 小时
有大神编的vba,给发上来看看呗,分享一下
阅读权限20
在线时间 小时
有大神编的vba,给发上来看看呗,分享一下
& & Dim d1, d2, d3, ar, br
& & Set d1 = CreateObject(&Scripting.Dictionary&)
& & Set d2 = CreateObject(&Scripting.Dictionary&)
& & Set d3 = CreateObject(&Scripting.Dictionary&)
& & ar = Range(&A2:B& & [b65536].End(3).Row)
& & br = Range(&C2:D& & [D65536].End(3).Row)
& & For i = 1 To UBound(ar)
& && &&&d3(ar(i, 2)) = &&: d1(ar(i, 2)) = d1(ar(i, 2)) + 1
& & For i = 1 To UBound(br)
& && &&&d3(br(i, 2)) = &&: d2(br(i, 2)) = d2(br(i, 2)) + 1
& & sa = d1.items
& & sb = d2.items
& & For Each k In d3.keys
& && &&&Cells(2 + n, &g&) = k: Cells(2 + n, &j&) = k
& && &&&Cells(2 + n, &h&) = d1(k): Cells(2 + n, &k&) = d2(k)
& && &&&If Cells(2 + n, &h&) = && Then Cells(2 + n, &h&) = 0
& && &&&If Cells(2 + n, &k&) = && Then Cells(2 + n, &k&) = 0
& && &&&If Cells(2 + n, &h&) - Cells(2 + n, &k&) & 0 Then
& && && && &Cells(2 + n, &i&) = Cells(2 + n, &h&) - Cells(2 + n, &k&)
& && && && &Cells(2 + n, &i&).Interior.ColorIndex = 6
& && &&&End If
& && &&&n = n + 1
这样能看见不,看不见我可以为你发链接,真的很厉害。
阅读权限20
在线时间 小时
看到了!就是大神呀!呵呵
阅读权限70
在线时间 小时
& & Dim d1, d2, d3, ar, br
& & Set d1 = CreateObject(&Scripting.Dictionary&)
看字典和数组运用的如此娴熟,猜猜是否zax010大师的作品。
阅读权限20
在线时间 小时
看字典和数组运用的如此娴熟,猜猜是否zax010大师的作品。
厉害呀,就是他的作品,看来很厉害的一个人哦,
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师页面&#x91载开启
页面&#x91载开启 欢&#x8光临本站,页面正在&#x91新载入,请稍候 ...查看: 231|回复: 7
如何统计包含某内容的单元格所在列的非空单元格数量
阅读权限20
在线时间 小时
若有一个表单,里面有若干列,我想统计首个单元格是”班级“的列非空单元格数量应该如何写?只知道首个单元格内容,但是并不知道所在列的列号
姓名年龄班级111222333444555666777888999101010111111121212131313141414151515161616171717181818191919202020212121222222232323242424252525262626
阅读权限20
在线时间 小时
公式可以吗?
=COUNTA(INDEX(A:C,,MATCH(&班级&,$1:$1,)))
阅读权限20
在线时间 小时
公式可以吗?
=COUNTA(INDEX(A:C,,MATCH(&班级&,$1:$1,)))
非常感谢,我还是想知道vba的写法。
阅读权限50
在线时间 小时
Public Sub ttt()
Dim Rng As Range, Ttl As Range
Dim i As Long, m As Long
Set Rng = Range(&A1&).CurrentRegion
Set Ttl = Rng.Rows(1)
Set Rng = Rng.Offset.Resize(Rng.Rows.Count - 1)
For i = 1 To UBound(arr, 2)
& & If arr(1, i) = &班级& Then
& && &&&m = i
& && &&&Exit For
& & End If
Set Rng = Rng.Columns(m)
For i = 1 To UBound(arr)
& & If arr(i, 1) && && Then
& && &&&m = m + 1
& & End If
MsgBox &班级单元格的个数是:& & m
阅读权限50
在线时间 小时
》》》》》》》》》》》》》》
09:34 上传
点击文件名下载附件
15.65 KB, 下载次数: 0
阅读权限50
在线时间 小时
Sub test()
Dim x, y, z, n
x = Cells(1, Columns.Count).End(xlToLeft).Column
For y = 1 To x
If Cells(1, y) = &班级& Then
arr = Range(Cells(1, y), Cells(Cells(Rows.Count, y).End(3).Row, y))
For z = 1 To UBound(arr)
If arr(z, 1) && && Then n = n + 1
Next
MsgBox &共有& & n & &个非空单元格&
Exit Sub
End If
Next
MsgBox &第一行未发现含有班级的列&
End Sub
复制代码
阅读权限20
在线时间 小时
Public Sub ttt()
Dim Rng As Range, Ttl As Range
非常感谢老师。非常有帮助。
阅读权限20
在线时间 小时
& & & & & & & &
非常感谢老师。非常有帮助。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 excel vba 统计个数 的文章

 

随机推荐