alex15 发表于 2012-9-28 14:22:15

[CAD-VBA编程]--如何判断一段文字是否过长而采用分行

本帖最后由 alex15 于 2012-9-28 17:16 编辑

有一批若干cad图纸,里面数据因为长短不同,有的超出了边框有的没有
需要用编程去对这批图纸批量处理,一共两行文字,对第一行的那段文字进行判断,如果超过20个字符,就自动分行,而原来的第二行下移一行。

感谢版主的提醒。假设这些dwg文件都是在一个文件夹中
每张图都有一个框,可以看到有的图类似第一行超出格子,我需要把第二行的 FLOW下移一行,第一行大于20个字符后的那些字符自动分行到第二行显示,应该如何做呢?





因为完全没有对CAD有过VBA的经验,特此求教,最好能带上excel含有Vba的附件。多谢多谢!

sscylh 发表于 2012-9-28 15:45:58

楼主最好能模拟一个附件发上来,不然就这样描述很难得到想到的程序
比如什么是边框?这批图纸是在一个文件夹里面放着吗?是对哪些文字进行处理(整个图纸里面的所有文字吗?)
如果楼主问题清晰的话,相信很快就会有结果

cqy 发表于 2012-9-28 16:44:49

iflen(textstring)>10 then

alex15 发表于 2012-9-28 17:17:45

cqy 发表于 2012-9-28 16:44 static/image/common/back.gif
iflen(textstring)>10 then

请问能否完整的一个程序段呢?因为对cad的vba完全没有概念,excel的vba有些基础,所以能否尽量全一点我正好可以学习一下。我明白你的这句话是个关键语句,但是其他类似对象的声明打开等都不太熟悉,所以还是希望能够全一点。

十分感谢!

alex15 发表于 2012-9-28 17:19:06

sscylh 发表于 2012-9-28 15:45 static/image/common/back.gif
楼主最好能模拟一个附件发上来,不然就这样描述很难得到想到的程序
比如什么是边框?这批图纸是在一个文件夹 ...

谢谢提醒,已经上传cad例子。

最好的情况就是能够做到一个excel的vba中可以上传附件,谢谢啦~~

齐天大圣3386 发表于 2012-9-28 20:58:31

cqy 发表于 2012-9-28 16:44 static/image/common/back.gif
iflen(textstring)>10 then

这个可能不完美,在字体和宽度比例因子不同的情况下,文字的个数虽然相同,但是长度有可能不同的。

sscylh 发表于 2012-9-28 21:40:03

另:是单行文本,还是多行文本?

mikewolf2k 发表于 2012-9-29 10:19:02

获得第一个文字,判断是否超过字数。超过的话,获得第二个文字,下移,拷贝第一个文字,第一个文字的文本取前N个字符,拷贝的文字取后N个字符。结束。

Flyingdancing 发表于 2012-9-29 11:31:35

以上适用范围都太小啊,前面也说了,有字体宽度,比例因子等影响着,所以还是要框选确定x坐标的两角点
再判断文字的boundingbox的x坐标差。根据文字x坐标与范围x坐标的比例,确定分割文字到第二行的比例,再分割确定字数。
由于前面用到框选,全图(批量),则对于框选的角点须有一定规律(最好的是两种情况:1.框选间距一定
2.有块做为基点(或文字位置与某块具有恒定相对位置))

jdlfjk 发表于 2012-10-2 21:57:41

把字符串放到mtext里头,mtext的范围角点设置在格子里头,文本长了不就是可以自动分行了吗
页: [1] 2
查看完整版本: [CAD-VBA编程]--如何判断一段文字是否过长而采用分行