Sub ct()
Dim r, n, str As String
r = Range("a65536").End(xlUp).Row
n = 0
str = "2在A列连续出现的次数为:"
For i = 1 To r
If Cells(i, 1) = 2 Then
If Cells(i + 1, 1) = 2 Then
n = n + 1
Else
n = n + 1
str = str & " " & n & "次"
n = 0
End If
End If
Next i
MsgBox str
End Sub
运行结果如图:
追问如果查找的是整个表格呢?
追答把范围改一下就可以了呀。
另外,查找整个表格的话,顺序是怎么样的?先从第一列开始,然后第二列,第三列,还是先从第一行开始,次一行,第二行,第三行?
追问从第一列开始,每列90行。需要改哪些地方啊?您指的范围是哪个代码呀?我是小白,抱歉了
追答代码给你修改了,运行后可以自己选择范围或输入范围:
Sub ct()
Dim r, n, str As String
a = InputBox("请输入要统计的数字或文本。")
If a = "" Then MsgBox "输入不正确!": End
Rng = Application.InputBox("请选择或输入要统计的范围:", , , , , , , 8)
str = a & "在所选范围内连续出现的次数为:"
n = 0
arr = Rng
For i = 1 To UBound(arr, 2)
For ii = 1 To UBound(arr, 1)
If Cells(ii, i) = 2 Then
If Cells(ii + 1, i) = 2 Then
n = n + 1
Else
n = n + 1
str = str & " " & n & "次"
n = 0
End If
End If
Next ii
Next i
MsgBox str
End Sub
效果如图:
统计是先行后列。