点击想要得到计算结果的格子,然后启用宏
[C] 纯文本查看 复制代码Sub huoqujiange()
Dim hang, lie As Integer
hang = ActiveCell.Row
lie = ActiveCell.Column
Dim panduan As Boolean
Dim num As Integer
panduan = True
num = hang
While panduan
num = num - 1
If Me.Cells(num, lie - 1).Value = Me.Cells(hang, lie - 1).Value Then
num = hang - num - 1
Me.Cells(hang, lie).Value = num
panduan = False
End If
Wend
[Visual Basic] 纯文本查看 复制代码Sub test()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 请根据情况修改工作表名称
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' 找到 B 列中的最后一行
Dim lastTrueRow As Long
lastTrueRow = 0 ' 初始化上次出现 TRUE 的行号为 0
Dim i As Long
For i = 1 To lastRow ' 遍历 B 列的每一行
If ws.Cells(i, "B").Value = True Then
If lastTrueRow > 0 Then
ws.Cells(i, "C").Value = i - lastTrueRow - 1 ' 计算间隔行数并写入 C 列
End If
lastTrueRow = i ' 更新上次出现 TRUE 的行号
End If
Next i
End Sub
用VB也能实现,方法如下:
1.按 Alt + F11 打开 VBA 编辑器
2.在 VBA 编辑器中,选择 Insert > Module 插入一个新模块。
3.将上述代码粘贴到模块中。
4.点击运行