作者gary8520 (元丁)
看板Visual_Basic
標題[VBA ] word VBA range結尾問題
時間Fri Dec 4 00:26:52 2015
由於有些重覆的文件歸檔動作,要從excel呼叫word,才剛學習word VBA
想請教大大們:
在一個新文件上輸入:Aaa bbc中文字( 金額 1,000 )
^ ^ ^ ^
^的部份是半型空格
目的是希望能選到某個特定字元到某個特定字元的範圍
例如目前想要選到「中文字」這個範圍
VBA code如下
Dim aRange As Range
Set aRange = ActiveDocument.Sections(1).Range
aRange.MoveStartUntil "中"
aRange.MoveEndWhile "(", wdBackward
MsgBox (aRange.Text)
出來顯示是「中文字( 金額 1,000 )」
我嘗試換過MoveEndUntil,但結果卻完全相同
另外想要問,有沒有手段是可以將Range.End設定到某個詞(ex"罰款")之前?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.8.152
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1449160017.A.A4E.html
※ 編輯: gary8520 (39.12.8.152), 12/04/2015 00:28:55
1F:→ potawei: 取"中"字之後一整段,取"罰款"之後一整段,前面減掉後面? 12/04 12:58
2F:→ MOONRAKER: range最小就是一格 格內的內容當字串處理 12/04 13:12
3F:→ MOONRAKER: instr()在字串中尋找子字串位置 mid()裁剪字串 12/04 13:12
4F:→ gary8520: 是range無法設定頭又設定尾嗎? 12/04 21:22
5F:→ MOONRAKER: range最小就是一格(cell) 再講下去跟前面一樣 12/05 00:10
6F:→ gary8520: word vba range最小不是一個字元嗎? 12/09 01:51
經過數種試驗,若想要選取「中文字」這個範圍的話,可用以下的code
aRange.MoveStartUntil "中" ' 中文字( 金額 1,000 )
aRange.MoveEndUntil "(", wdBackward ' 中文字(
aRange.MoveEnd wdCharacter, -1 '中文字
另外word vba和EXCEL vba的操作真的滿有差的,一種是選取儲存格,
不是特殊物件都可以清楚容易地定位
但word 的range要選到自己要的範圍,和excel vba的思維很不一樣
※ 編輯: gary8520 (110.28.154.60), 12/10/2015 23:22:14