qsl707 发表于 2006-8-30 16:19:00

多行文本如何转换为单行文本

单行转换为多行很容易实现,但多行文本如何转换为单行文本,本来想通过爆炸实现,结果发现VBA不支持,怎么办?谢谢!

雪山飞狐_lzh 发表于 2006-9-2 18:05:00

sendcommand

yuangw1234 发表于 2006-9-2 18:40:00

先得到多行方字的内容,然后重写

qsl707 发表于 2006-9-3 13:44:00

yuangw1234发表于2006-9-2 18:40:00static/image/common/back.gif先得到多行方字的内容,然后重写

如何获得,能不能详细说明一下,楼上的兄弟<BR>

zhuxuhong 发表于 2006-9-3 16:26:00

<DIV>引自&nbsp;<A href="http://xsfhlzh.139.com/" target="_blank" ><FONT color=#000000>http://xsfhlzh.139.com</FONT></A> ,可参考</DIV>
<DIV>Private Function MToS(mtext As Variant) As Variant<BR>'炸开MText并返回一个Text数组<BR>&nbsp;&nbsp;&nbsp; Dim i As Integer<BR>&nbsp;&nbsp;&nbsp; Dim ss As AcadSelectionSet<BR>&nbsp;&nbsp;&nbsp; Dim pTexts As New Collection<BR>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveSelectionSet.Clear<BR>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "Explode" &amp; vbCr &amp; "(handent " &amp; Chr(34) _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; mtext.Handle &amp; Chr(34) &amp; ")" &amp; vbCr &amp; vbCr<BR>&nbsp;&nbsp;&nbsp; Set ss = ThisDrawing.ActiveSelectionSet<BR>&nbsp;&nbsp;&nbsp; For i = 0 To ss.Count - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If UCase(ss(i).ObjectName) = "ACDBTEXT" Then pTexts.Add ss(i)<BR>&nbsp;&nbsp;&nbsp; Next i<BR>&nbsp;&nbsp;&nbsp; MToS = pTexts<BR>End Function<BR><BR></DIV>

qsl707 发表于 2006-9-4 08:27:00

如果不爆炸,那位兄弟有好办法

mayuezxl 发表于 2006-9-4 09:25:00

先获得多行文本的属性,然后再写成单行文字(同时删除多行文本),就可以了

yuangw1234 发表于 2006-9-4 12:06:00

<P>获得的方法为textstring属性,如dim tx as acadmtext,则可以用tx.textstring获得内容</P>

qsl707 发表于 2006-9-4 17:17:00

yuangw1234发表于2006-9-4 12:06:00static/image/common/back.gif
获得的方法为textstring属性,如dim tx as acadmtext,则可以用tx.textstring获得内容

<BR>这样是不行的,英文的当然可以了,只要有汉字就行不通了,里面就多出很多东西(当然是文本的一些格式信息),不信你可试试看
页: [1]
查看完整版本: 多行文本如何转换为单行文本