文件名称:换行单元格转真实行.bas
文件大小:1KB
文件格式:BAS
更新时间:2024-07-27 04:17:04
VBA EXCEL 换行单元格 转真实行
'调用过程 Sub 使用() Dim 行, 列 '下面程序是 转换 第2行第5列到第2行第800列 '由于行一直在增加,所以实际并不会转换到原数据的800列 行 = 2 列 = 5 For 行 = 2 To 800 Step 1 Call 换行单元格转真实行(Cells(行, 列)) Next End Sub '过程 Sub 换行单元格转真实行(rng As Range) 'Dim rng As Range '处理的单元格 Dim str As String '消掉处理的单元格中所有换行符的文本 Dim i '处理的换行符个数 = 原单元格字符个数 - 处理后单元格字符个数 ( i 结果是多少 这个单元格就有 i+1 行) Dim 行数 '处理单元格里面有多少行 Dim rngcol rngcol = rng.Column '处理单元格在第几列 Dim rngstr As String rngstr = rng.Value '处理单元格的内容 str = Application.WorksheetFunction.Substitute(rngstr, "" & Chr(10) & "", "") i = VBA.Len(rng) - VBA.Len(str) '得到 单元格 里面 一共多少个 换行符 从而得到行数为i+1 If i > 0 Then '如果有换行符的话 行数 = i + 1 '得到行数 For i = 行数 To 2 Step -1 '有多少行循环多少次 Rows(rng.Row + 1).Insert '先在 处理的单元格下面插入一行 Cells(rng.Row + 1, rngcol) = Split(rngstr, "" & Chr(10) & "")(i - 1) '然后把最后一行内容给写进去,倒数第二行内容写进去…………第二行写进去 Next Cells(rng.Row, rngcol) = Split(rngstr, "" & Chr(10) & "")(0) '然后把第一行内容写到原位置 End If 'Split(字符串, 分隔符)(第几个) End Sub