多行文本如何转换为单行文本
单行转换为多行很容易实现,但多行文本如何转换为单行文本,本来想通过爆炸实现,结果发现VBA不支持,怎么办?谢谢! sendcommand 先得到多行方字的内容,然后重写如何获得,能不能详细说明一下,楼上的兄弟
引自 http://xsfhlzh.139.com ,可参考
Private Function MToS(mtext As Variant) As Variant
'炸开MText并返回一个Text数组
Dim i As Integer
Dim ss As AcadSelectionSet
Dim pTexts As New Collection
ThisDrawing.ActiveSelectionSet.Clear
ThisDrawing.SendCommand "Explode" & vbCr & "(handent " & Chr(34) _
& mtext.Handle & Chr(34) & ")" & vbCr & vbCr
Set ss = ThisDrawing.ActiveSelectionSet
For i = 0 To ss.Count - 1
If UCase(ss(i).ObjectName) = "ACDBTEXT" Then pTexts.Add ss(i)
Next i
MToS = pTexts
End Function
如果不爆炸,那位兄弟有好办法 先获得多行文本的属性,然后再写成单行文字(同时删除多行文本),就可以了 获得的方法为textstring属性,如dim tx as acadmtext,则可以用tx.textstring获得内容
这样是不行的,英文的当然可以了,只要有汉字就行不通了,里面就多出很多东西(当然是文本的一些格式信息),不信你可试试看
页:
[1]