我想替換圖形中的單行文本,但是遇到了問題,所以上來請教各位前輩:
1、我在圖形中將需要替換的文本設定成唯一名稱,比如叫“A文本”,整個圖形中的單行文本,只有一處叫“A文本”,我用 strFind = "A文本",strReplace = "B文本",可以替換掉。但是如果我文字打錯了,想把文本改成“C文本”。問題來了,再用strFind來查找,可是圖形中叫“B文本”的有很多,它不是唯一的,用strReplace替換后就會出錯。
2、有沒有一種方法,鎖定文本的句柄,通過句柄來實作修改文本,因為我查了相關資料,說是句柄是唯一的。如果真是這樣,不管文本是什么,都能通過句柄來鎖定它,來修改,這樣就不會亂了,不知道我這個想法是不是對的?
3、如果上面的方法都不行,是否能通過洗掉文本,然后再插入新文本來實作?如果這樣也可以,我在程式運行時,第一個動作是洗掉文本,然后在固定的位置插入新文本,這樣也不會亂了。
以上只是我的想法,VBA剛入門,許多不懂,只能一步一步摸索,文本操作這一塊,只會用strFind和strReplace 來替換,其它方法都不會,代碼不知如何寫,實在沒辦法了,才上來打擾各位前輩,希望有知道的前輩不吝賜教,貼一段代碼指導一下,謝謝!
uj5u.com熱心網友回復:
1. 這兒用過CAD的人很少吧,建議你自己仔細看看strReplace的說明,有沒有替換范圍限定、替換次數限定的引數。按理說,文本替換操作,無論替換多少次,也不應該“出錯”才是啊。
你說“會出錯”,那么它的錯誤提示是什么,怎么不說清楚!!!!

(話說,你這個 strReplace是CAD的VBE提供的程序或函式嗎?)
2. “文本”應該是沒有句柄的吧!
退一萬步說,就算有句柄,你憑什么去確定你“想替換的那一段文本”的句柄呢!
若能“確定某一段文本”了,肯定也有相關的方法改變這段文本內容,關“句柄”什么事呢……
3. 依稀記得CAD有一種什么格式的檔案,是“純文本”形式的,不知道你要處理的檔案能不能轉換成那種檔案格式來處理?
你可以嘗試一下,看轉換格式后的檔案,有沒有包含你需要處理的內容的全部資訊在里面。
如果可以這樣轉換后再處理,你看看能不能搞定;
若不能搞定,建議你提供檔案樣本,看有沒有解決辦法。
uj5u.com熱心網友回復:
記住最早A文本的開始位置不就得了。uj5u.com熱心網友回復:
謝謝你的回復!已經搞定,取得文本句柄,就能得到文本物件的內容。cad中的句柄不同于其它語言的句柄,它是字符不是整數。再次感謝你的回復!
uj5u.com熱心網友回復:
坐等大神!!轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/45246.html
標籤:VBA
