|
本帖最后由 lgzxmlg 于 2023-4-29 11:04 编辑
网上找到的一段代码。想将选择整列,修改为区域。如:A6:A或B6:B。不知如何修改。请老师帮忙。代码如下。主要是分段统计次数。
Sub count()
Dim Rng As Range
Dim i&, Col&, Fist, Last
Dim count
Set Rng = Application.InputBox("请选择单列数据列!", Type:=8)
'用户选择数据列
Set Rng = Intersect(Rng.Parent.UsedRange, Rng)
'intersect语句避免用户选择整列造成无谓运算
Col = Rng.Column 'Rng所在列
Fist = Rng.Row
'Rng开始行,用户选择的区域并不是一定从第一行开始,因此需要此句判断
Last = Fist + Rng.Rows.count - 1 'Rng结束行
Application.ScreenUpdating = False '取消屏幕更新
Application.DisplayAlerts = False
'取消消息提醒。当有值单元格被合并时屏蔽提示信息
Rng.Parent.Select '激活Rng对象所在的工作表,避免跨工作表操作问题
count = 1
For i = Last To Fist + 1 Step -1
'对Rng进行从后向前遍历
If Cells(i, Col) <> Cells(i - 1, Col) Then
Cells(i, Col + 1) = count
count = 1
ElseIf Cells(i, Col) = Cells(i - 1, Col) Then
count = count + 1
End If
Next
End Sub
|
|