作者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/cn.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