zle12688
61 天前
下面代码是对 Excel 表内单元格 B2 开始,循环遍历对 B 列有多行内容的单元格进行编号的 VBA 代码,可根据你自己表格内对应要编号的列,进行代码的修改就好了:
Sub NumberLinesInColumnB_FromRow2()
Dim ws As Worksheet
Dim rngCell As Range
Dim lastRow As Long
Dim arrLines As Variant
Dim i As Long
' 设置要处理的工作表(此处以当前活动工作表为例)
Set ws = ActiveSheet
' 找到 B 列最后一行有内容的行号
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
' 遍历 B 列从第 2 行到最后一行所有有内容的单元格
For Each rngCell In ws.Range("B2:B" & lastRow)
' 如果单元格不为空,并且是字符串类型
If Not IsEmpty(rngCell) And VarType(rngCell.Value) = vbString Then
' 按换行符拆分
arrLines = Split(rngCell.Value, vbLf)
' 为每一行加上编号
For i = LBound(arrLines) To UBound(arrLines)
arrLines(i) = (i + 1) & ". " & arrLines(i)
Next i
' 将编号结果重新组合回单元格
rngCell.Value = Join(arrLines, vbLf)
End If
Next rngCell
' 可根据需求,添加运行完成后的提示
MsgBox "B 列编号完成!"
End Sub