Board logo

標題: [發問] 如何取得二段中間的字串 (WORD VBA ) [打印本頁]

作者: wangccw16    時間: 2018-12-4 12:55     標題: 如何取得二段中間的字串 (WORD VBA )

工作上的需求及VBA寀鳥 ,請問假設一篇 word  內容如下:

----------------word  begin---------------------
無關緊要1
無關緊要2
          <抬頭>
我要的內容1
我要的內容2
我要的內容3
我要的內容4
   <結尾>  
       我還有很多1
        我還有很多2
         我還有很多3
----------------word  end-----------------------

問題:
請問各位先進,我要取得 <抬頭> 到 <結尾>的內容 (不包含抬頭及 結尾)  如下:

我要的內容1
我要的內容2
我要的內容3
我要的內容4

我的想法是用 range.find 分別找出 <抬頭> 和 <結尾> 的行號,再從  <抬頭>+1  找到 <結尾>-1 的資料,但VBA功力太弱,可以請各位大神 幫忙一下,謝謝。
作者: hcm19522    時間: 2018-12-6 11:25

D2:D6{=INDEX(B:B,SMALL(IF((ROW(B$3:B$14)>MATCH(,0/FIND("抬頭",B$3:B$14),)+2)*(ROW(B$3:B$14)<MATCH(,0/FIND("結尾",B$3:B$14),)+2),ROW(B$3:B$14),4^8),ROW(A1)))&""

E2:E6{=IF(MATCH("          <抬頭>",B:B,)+ROW(A1)>=MATCH("   <結尾>  ",B:B,),"",INDEX(B:B,MATCH("          <抬頭>",B:B,)+ROW(A1)))

F2:F6{=IF(MATCH(,0/FIND("抬頭",B$3:B$14),)+ROW(A1)>=MATCH(,0/FIND("結尾",B$3:B$14),),"",INDEX(B:B,MATCH(,0/FIND("抬頭",B$3:B$14),)+ROW(A1)+2))
作者: wangccw16    時間: 2018-12-6 19:38

謝謝 hcm19522 先進的回覆 : ) , 只是我要的是 office word 的解法,呵呵!!!:)
作者: ggeess    時間: 2019-5-21 16:54

SELECTION.Find.Execute FindText:="<抬頭>"
   SELECTION.EndKey unit:=wdLine
  SELECTION.HomeKey unit:=wdStory, Extend:=wdExtend
a=selection.range.characters.count
SELECTION.homeKey
   SELECTION.Find.Execute FindText:="<結尾>"
   SELECTION.homeKey unit:=wdLine
  SELECTION.HomeKey unit:=wdStory, Extend:=wdExtend
b=selection.range.characters.count
Set myRange = ActiveDocument.Range(Start:=a, End:=b)
msgbox  myRange




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)