返回列表 上一主題 發帖

[發問] 用Excel開啟word後的搜尋問題

[發問] 用Excel開啟word後的搜尋問題

  1.             objSelection.WholeStory
  2.             objSelection.Find.ClearFormatting
  3.             objSelection.Find.Text = tt
  4.             objSelection.Find.Replacement.Text = ""
  5.             objSelection.Find.Forward = True
  6.             objSelection.Find.Wrap = wdFindContinue
  7.             objSelection.Find.Format = False
  8.             objSelection.Find.MatchCase = False
  9.             objSelection.Find.MatchWholeWord = False
  10.             objSelection.Find.MatchByte = True
  11.             objSelection.Find.CorrectHangulEndings = False
  12.             objSelection.Find.MatchAllWordForms = False
  13.             objSelection.Find.MatchSoundsLike = False
  14.             objSelection.Find.MatchWildcards = False
  15.             objSelection.Find.MatchFuzzy = False
  16.             objSelection.Find.Execute
  17.             objSelection.TypeText Text:=CStr(rr)
  18.             objSelection.Find.Execute , , , , , , , , , , wdReplaceAll
複製代碼
以上之程式碼可以完成我搜尋的工作,並且取代成功
但要如何得知有"幾個"搜尋結果,將搜尋結果的數量變成一個變數名稱ex:findN
而我就可以執行其他動作
if findN =0 then XXXXX

麻煩各位大大了
PKKO

回復 2# luhpro
太感謝了,我要的就是最後面的功能,我明天來試試看!,感恩!
PKKO

TOP

回復 2# luhpro

感謝 luhpro 大大,
小弟測試後,完全可以使用
以下為小弟的程式碼(我的寫法比較偷懶,不曉得我的寫法與您的寫法,在程式運作上速度會有差異嗎?)
  1. With objSelection
  2.             .WholeStory
  3.             .Find.ClearFormatting
  4.             .Find.Text = ttt
  5.             .Find.Replacement.Text = ""
  6.             .Find.Forward = True
  7.             .Find.Wrap = wdFindContinue
  8.             .Find.Format = False
  9.             .Find.MatchCase = False
  10.             .Find.MatchWholeWord = False
  11.             .Find.MatchByte = True
  12.             .Find.CorrectHangulEndings = False
  13.             .Find.MatchAllWordForms = False
  14.             .Find.MatchSoundsLike = False
  15.             .Find.MatchWildcards = False
  16.             .Find.MatchFuzzy = False
  17.             If Not .Find.Execute Then
  18.                 Range("k" & num) = "搜尋不到 " & ttt
  19.                 num = num + 1
  20.             Else
  21.                 .TypeText Text:=CStr(rr)
  22.                 .Find.Execute , , , , , , , , , , wdReplaceAll '如果找到
  23.             End If
  24.         End With
複製代碼
PKKO

TOP

回復 5# GBKEE


    感謝!有空再來試試看
PKKO

TOP

本帖最後由 PKKO 於 2014-12-29 05:58 編輯

感謝超版大大,我將程式碼改成如下,不然N會少一半的次數,因為兩次Execute
目前已可正常使用,感動ㄋㄟ!
  1.             With objSelection
  2.                 .WholeStory
  3.                 With .Find
  4.                     .ClearFormatting
  5.                     .Text = "t03"
  6.                     .Replacement.Text = ""
  7.                     .Forward = True
  8.                     .Wrap = wdFindContinue
  9.                     .Format = False
  10.                     .MatchCase = False
  11.                     .MatchWholeWord = False
  12.                     .MatchByte = True
  13.                     .CorrectHangulEndings = False
  14.                     .MatchAllWordForms = False
  15.                     .MatchSoundsLike = False
  16.                     .MatchWildcards = False
  17.                     .MatchFuzzy = False
  18.                     Do While .Execute = True
  19.                         n = n + 1
  20.                         '找到的話
  21.                         'msgbox "找到了"
  22.                     Loop
  23.                 End With
  24.                 If n = 0 Then '如果找不到
  25.                    'msgbox "找不到"
  26.                 End If
  27.             End With
複製代碼
回復 5# GBKEE
PKKO

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題