我想替换图形中的单行文本,但是遇到了问题,所以上来请教各位前辈:
1、我在图形中将需要替换的文本设置成唯一名称,比如叫“A文本”,整个图形中的单行文本,只有一处叫“A文本”,我用 strFind = "A文本",strReplace = "B文本",可以替换掉。但是如果我文字打错了,想把文本改成“C文本”。问题来了,再用strFind来查找,可是图形中叫“B文本”的有很多,它不是唯一的,用strReplace替换后就会出错。
2、有没有一种方法,锁定文本的句柄,通过句柄来实现修改文本,因为我查了相关资料,说是句柄是唯一的。如果真是这样,不管文本是什么,都能通过句柄来锁定它,来修改,这样就不会乱了,不知道我这个想法是不是对的?
3、如果上面的方法都不行,是否能通过删除文本,然后再插入新文本来实现?如果这样也可以,我在程序运行时,第一个动作是删除文本,然后在固定的位置插入新文本,这样也不会乱了。以上只是我的想法,VBA刚入门,许多不懂,只能一步一步摸索,文本操作这一块,只会用strFind和strReplace 来替换,其它方法都不会,代码不知如何写,实在没办法了,才上来打扰各位前辈,希望有知道的前辈不吝赐教,贴一段代码指导一下,谢谢!

解决方案 »

  1.   

    1. 这儿用过CAD的人很少吧,建议你自己仔细看看strReplace的说明,有没有替换范围限定、替换次数限定的参数。
      按理说,文本替换操作,无论替换多少次,也不应该“出错”才是啊。
      你说“会出错”,那么它的错误提示是什么,怎么不说清楚!!!! 
      (话说,你这个 strReplace是CAD的VBE提供的过程或函数吗?)2. “文本”应该是没有句柄的吧!
      退一万步说,就算有句柄,你凭什么去确定你“想替换的那一段文本”的句柄呢!
      若能“确定某一段文本”了,肯定也有相关的方法改变这段文本内容,关“句柄”什么事呢……3. 依稀记得CAD有一种什么格式的文档,是“纯文本”形式的,不知道你要处理的文档能不能转换成那种文档格式来处理?
      你可以尝试一下,看转换格式后的文档,有没有包含你需要处理的内容的全部信息在里面。
      如果可以这样转换后再处理,你看看能不能搞定;
      若不能搞定,建议你提供文档样本,看有没有解决办法。
      

  2.   

    谢谢你的回复!已经搞定,取得文本句柄,就能得到文本对象的内容。cad中的句柄不同于其它语言的句柄,它是字符不是整数。再次感谢你的回复!