背景:
有时候为了使得每行单元格一一对应,又要使得一些无法一一对应的杂项顺序分明,故而需要一列放置有序列的杂项,其它列进行一一对应。
办法:
第一步、将当前excel文件保存为.xlsm文件
第二步、在菜单栏/文件/选项/自定义功能区勾选开发工具
第三步、在菜单栏/开发工具中点击Visual Basic
第四步、如图示,在“工程-VBAProject”窗口下找到VBAProject (当前文件名称.xlsm),右键点击->插入->模块
第五步、如图示,将下面的代码粘贴至右边的空白窗口中
Option Base 1
Sub 选单元格内容每段加序号()
'2020-1-2 22:21:42
Dim m As String
Dim i As Long
Dim j As Long
Dim mm As String
Dim lines() As String
Dim cmt As Range
For Each cmt In Selection
m = cmt.Text
If cmt.Text <> "" Then
lines = Split(m, Chr(10))
mm = ""
j = 0
For i = LBound(lines) To UBound(lines)
If Not (j > 1 And Left(lines(i), 2) = j & ".") Then
j = j + 1
mm = mm & j & ". " & lines(i) & Chr(10)
Else
mm = mm & lines(i) & Chr(10)
End If
Next i
cmt.Value = Left(mm, Len(mm) - 1) ' 移除末尾的换行符
End If
Next cmt
End Sub
第六步、保存代码、运行之。
第七步、选中希望添加序号的单元格(已经填写了内容的),然后点击菜单栏/开发工具/宏,然后选择刚才创建的函数模块,再点击执行即可。
参考:
代码来源:https://www.zhihu.com/question/508637411/answer/3259774764
excelVBA教程来源:编写你的第一个 VBA 宏 - 懒人Excel (lanrenexcel.com)