基于字体颜色自动重置的Chronological序号列创建求助
根据字体颜色自动重置编号的实现方案
用VBA实现自动编号逻辑
针对你需要按左侧列字体颜色 chronological 顺序编号、颜色变化时重置计数的需求,可以通过Excel VBA实现:
- 打开目标Excel文件,按
Alt + F11打开VBA编辑器 - 在左侧工程面板双击对应工作表(比如Sheet1)
- 粘贴以下代码到代码窗口:
Private Sub Worksheet_Calculate() Dim lastRow As Long Dim currentColor As Long Dim count As Integer Dim i As Long lastRow = Me.Cells(Me.Rows.Count, "A").End(xlUp).Row If lastRow < 2 Then Exit Sub currentColor = Me.Range("A2").Font.Color count = 1 Me.Range("B2").Value = count For i = 3 To lastRow If Me.Range("A" & i).Font.Color = currentColor Then count = count + 1 Else currentColor = Me.Range("A" & i).Font.Color count = 1 End If Me.Range("B" & i).Value = count Next i End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Me.Calculate End Sub
自定义调整说明
- 若左侧列不是A列、目标编号列不是B列,只需把代码里的
"A"和"B"替换成对应列标(比如C列和D列就改成"C"、"D") - 文件需保存为
.xlsm格式(启用宏的工作簿),否则代码无法运行 - 修改左侧列单元格字体颜色后,切换选中单元格即可触发编号更新
效果示例
如果左侧列字体颜色序列为:红色→红色→蓝色→蓝色→蓝色→绿色,编号列会自动生成:1→2→1→2→3→1
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

