[VBA ] word VBA range結尾問題

看板Visual_Basic作者 (元丁)時間9年前 (2015/12/04 00:26), 9年前編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
由於有些重覆的文件歸檔動作,要從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://www.ptt.cc/bbs/Visual_Basic/M.1449160017.A.A4E.html ※ 編輯: gary8520 (39.12.8.152), 12/04/2015 00:28:55

12/04 12:58, , 1F
取"中"字之後一整段,取"罰款"之後一整段,前面減掉後面?
12/04 12:58, 1F

12/04 13:12, , 2F
range最小就是一格 格內的內容當字串處理
12/04 13:12, 2F

12/04 13:12, , 3F
instr()在字串中尋找子字串位置 mid()裁剪字串
12/04 13:12, 3F

12/04 21:22, , 4F
是range無法設定頭又設定尾嗎?
12/04 21:22, 4F

12/05 00:10, , 5F
range最小就是一格(cell) 再講下去跟前面一樣
12/05 00:10, 5F

12/09 01:51, , 6F
word vba range最小不是一個字元嗎?
12/09 01:51, 6F
經過數種試驗,若想要選取「中文字」這個範圍的話,可用以下的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
文章代碼(AID): #1MO6rHfE (Visual_Basic)
文章代碼(AID): #1MO6rHfE (Visual_Basic)