vbs 获取excel某列中每个相同值有多少行??

如下图:

如何使用VBS操作多个excel,获取G列(市这一列)所有同一个值有多少行,如常德市有多少行,长沙市有多少行,衡阳市有多少行??

ALT+F11打开VBA编辑器,粘贴以下代码,F5运行。

Sub test()
Dim k, m As Integer
Dim str, str1, str2 As String
Sheet1.Activate
k = Range("g65535").End(xlUp).Row
m = 1
For i = 2 To k
str1 = Cells(i, 7).Value
str2 = Cells(i + 1, 7).Value
If str1 = str2 Then
m = m + 1
Else
str = str & str1 & " " & m & Chr(10)
m = 1
End If
Next
MsgBox str
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-04
首先把工作表内容读入数组,在VBA中使用字典,是建立字典时,同时计算出相同值的个数。追问

这个具体怎么做呢?能不能给个实例?

追答

上千个?都什么文件?都要解决相同的问题吗?

第2个回答  2014-11-04
在G列后插入一列,输入公式:=COUNTIF(G:G,G2),向下填充追问

我想过这种方式,但是我有上千个文件,如果每个都这样做,太费时间了,所以想用vbs来统计

追答

上千个类似的文件吗? 文件名命名有规律吗?输出结果的形式是什么样呢?
可以做宏,但是如果没有合理设计的数据源(文件命名有规律,表格格式相同),效率也是很低的。
VBA不是万能神器,必须结合实际数据来使用的。

第3个回答  2014-11-04
sumif函数
相似回答