vba如何提取单元格内每一行内容或如何获取单元格换行字符 60
该问题的关键是如何识别自动换行的单元格内文本自动换行的位置,而且是批量的提取出来。单元格内没有换行符,当文本内容大于显示列宽时,文本自动换呈多行显示。...
该问题的关键是如何识别自动换行的单元格内文本自动换行的位置,而且是批量的提取出来。单元格内没有换行符,当文本内容大于显示列宽时,文本自动换呈多行显示。
展开
3个回答
展开全部
请测试下面的代码,思路是先将A列的内容连接在一起,然后用split根据改行拆分成各行写入B列。
Sub 改行拆分()
Dim str As String
Dim i As Integer, j As Integer, k As Integer, ar, arr
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Len(Cells(i, 1)) > 0 Then
str = Cells(i, 1).Text & Chr(10) & str
End If
Next i
ar = Split(str, Chr(10))
ReDim arr(1 To UBound(ar) + 1, 1 To 1)
For i = 0 To UBound(ar)
k = k + 1
arr(k, 1) = ar(i)
Next
With Cells(1, 2)
.EntireColumn.NumberFormatLocal = "@"
.Resize(k) = arr
End With
End Sub
Sub 改行拆分()
Dim str As String
Dim i As Integer, j As Integer, k As Integer, ar, arr
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Len(Cells(i, 1)) > 0 Then
str = Cells(i, 1).Text & Chr(10) & str
End If
Next i
ar = Split(str, Chr(10))
ReDim arr(1 To UBound(ar) + 1, 1 To 1)
For i = 0 To UBound(ar)
k = k + 1
arr(k, 1) = ar(i)
Next
With Cells(1, 2)
.EntireColumn.NumberFormatLocal = "@"
.Resize(k) = arr
End With
End Sub
更多追问追答
追问
你好首先感谢你的回答但抱歉的是你的代码没用,测试其功能是a列复制到b列,b列不自动换行而已
追答
图片上的A列单元格中的是Alt+Enter的换行符?还是符合列宽的换行?
在本机测试完全没有问题。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
splitdata = Split(Range("G3").Value, Chr(10)) 用 split 来提取字符串
更多追问追答
追问
你好你的这个也没效果谢谢
追答
我怀疑你的换行不是换行符,所以导致split 函数无法使用 你把列拉宽点 字数是否改变?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询