有哪位 excel 大神知道,如何在 excel 中对单元格内的多行文本内容进行逐行编号

61 天前
windplume  windplume
1096 次点击
所在节点   Excel
9 条回复
cchaan
cchaan
61 天前
这种技术问题,可以试试问 AI
windplume
windplume
61 天前
@cchaan 问了,要写 vba ,感觉有点麻烦
summerwar
summerwar
61 天前
office 365 支持 Python ,写个 Python ,获取行数,然后分割文本内容,在每行前面添加编号,然后再组合起来,搞定
summerwar
summerwar
61 天前


附上截图,下面是代码

n=xl("A1")
data = n.split("\n")
print(data)
m=""
for i in range(len(data)):
m=m+str(1+i)+data[i]+"\n"
m
summerwar
summerwar
61 天前
还可以定义一个方法,然后其他单元格直接调用这个方法就可以了。
vmebeh
61 天前
https://imgur.com/a/tT6Jb11
换行符是根据 windows 的 CRLF
不清楚你的场景,分行可以试试这个方法

想单元格加行号的估计不如粘贴到 word 加行号再粘贴回来来的快
wsjwqq
61 天前
单元格每行分割到后面 n 列,加上编号然后再合并
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
Chicagoake
60 天前
解决 EXCEL 问题问 AI 确实是最简单的方案,用函数、写 VBA 都是如此。缺点是描述起来比较麻烦。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1099282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX