excel 怎么换行加行数

现有单元格里的字符串为:
!!第一个字符串!!!!第二个字符串!!!!。。。!!第n个字符串!!!!

想要去到!号,并且把字符串换行显示还要加上行数,替代掉当前单元格里的现有的文字。
格式如下:

1.第一个字符串
2.第二个字符串
.
.
.
n.第n个字符串

其中每一段的!个数不定,每个字符串的长度不定内容也不定。 要怎么办呀?
(“。。。”表示省略)

  录制一个宏,保存这个宏名称为 ”换行“,然后编辑”换行“这个宏,将以下代码替换到这个宏中,运行宏即可。这个是针对A1这个一格,将里面的字符串替换出来,重新在B这一列将所有数据从上到下依次排列起来。

  如果有多个表格,需要把代码优化一下,无非是重复执行下面这个过程,将每一个单元格中的数据提取出来,在SHEET2中依次列出来即可。

  Sub 换行()
  ' 换行 宏
  Dim temStr As String
  temStr = Cells(1, 1)
  
  Dim i, j, loc1, loc2, Nums1 As Integer
  Dim temStrs(1000) As String
  
  For i = 1 To Len(temStr)
  loc1 = 0
  If Mid(temStr, i, 1) <> "!" Then
  If loc1 = 0 Then loc1 = i
  For j = i To Len(temStr)
  If Mid(temStr, j, 1) = "!" Then
  loc2 = j
  i = loc2
  Nums1 = Nums1 + 1
  temStrs(Nums1) = Mid(temStr, loc1, loc2 - loc1)
  GoTo 100
  End If
  Next j
  End If

  100 Next i
  
  i = 0
  For i = 1 To Nums1
  Cells(i, 2) = i & " " & temStrs(i)
  Next i
  
  End Sub追问

非常感谢!非常接近我想要的答案了。
只是我是想在同一个单元格里面换行显示。现在换行了就在另一个单元格里面显示了。

追答

在同一个单元格里面换行,也可以实现,只需要把上面的代码优化一下,每次点击任何一个单元格就自动执行,但会出现重复读取单元格数据的问题,也就是死循环。

主要是我不知道你原始数据所在的区域,所以这个不太好弄,要是有原表很快就可以实现。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-04
假设单元格为A1,转换的格式从D1开始。用以下这程序就行了。

Sub Test()
Dim sStr As String, i As Integer, r As Integer, sMid As String

sStr = Range("a1")

r = 0

For i = 1 To Len(sStr)

If mid(sStr, i, 1) <> "!" Then

sMid = sMid & mid(sStr, i, 1)

If mid(sStr, i + 1, 1) = "!" Then
r = r + 1
Range("d" & r) = r & "." & " " & sMid

sMid = ""

End If

End If

Next i

End Sub
第2个回答  2014-04-04
换行简单
excel中按alt+enter(回车)就是换行
替换按 ctrl+H
你的问题用编程比较好解决,你可以吧字符串用编程解决后在复制到excel中追问

我有上千个这个的单元。
手动改很麻烦。就是想找个简单的方法全部替代。

相似回答