vba - Search for messages with a loop -


the end result select start position , end position , keep in between these conditions , delete rest.

i.e. messages peter in extract.
start: peter@hello.co.za
end: end message.

there 12 different messages same start , end in pool of 3000 messages.

the program keep first out of 12 messages start , condition above, need 12.

sub findanddeleteeverythingelse()   dim strfind1 string, strfind2 string   dim rngdoc word.range, rngfind1 word.range   dim rngfind2 word.range   dim bfound boolean    strfind1 = "you"   strfind2 = "directly."   set rngdoc = activedocument.content   set rngfind1 = rngdoc.duplicate   set rngfind2 = rngdoc.duplicate   rngfind1.find     .text = strfind1     bfound = .execute   end   if bfound     rngfind2.find         .text = strfind2         bfound = .execute     end     if bfound         rngdoc.end = rngfind1.start         rngdoc.delete         rngdoc.start = rngfind2.end         rngdoc.end = activedocument.content.end         rngdoc.delete     end if   end if end sub    

using code post cindy mentioned, adding few line.

this loose formatting of original data set. alternatively can open new word document , copy , past data across keep formatting.

 sub somesub1()   dim startword string, endword string  dim find1strange range, findendrange range  dim delrange range, delstartrange range, delendrange range    application.screenupdating = true  application.displayalerts = true   application.screenupdating = false  'application.displayalerts = false  'setting ranges  set find1strange = activedocument.range  set findendrange = activedocument.range  set delrange = activedocument.range   'set start , end find words here cleanup script  startword = "from: yussuf ismail"  endword = "kind regards"     '=======================================================================  '=======================================================================  'new code  'setting array   dim messagenum long  messagenum = 1  'can change 100 whatever want depending on how many emails expecting find, 100 cater 100  dim emails(100) variant    '=======================================================================  '=======================================================================     'starting find first word  find1strange.find      .text = startword      .replacement.text = ""      .forward = true      .wrap = wdfindstop      .format = false      .matchcase = false      .matchwholeword = false      .matchwildcards = false      .matchsoundslike = false      .matchallwordforms = false       'execute find      while .execute          'if found script          if .found = true              'setting found range delstartrange              set delstartrange = find1strange              'having these selections during testing benificial test script              delstartrange.select               'setting findendrange remainder of document form end of startword              findendrange.start = delstartrange.end              findendrange.end = activedocument.content.end               'having these selections during testing benificial test script              findendrange.select                'setting find end word              findendrange.find                  .text = endword                  .execute                   'if found script                  if .found = true                      'setting found range delendrange                      set delendrange = findendrange                       'having these selections during testing benificial test script                      delendrange.select                   end if               end               'selecting delete range              delrange.start = delstartrange.start              delrange.end = delendrange.end              'having these selections during testing benificial test script                '=======================================================================              '=======================================================================              'new code              'adding foudn text array              emails(messagenum) = delrange              messagenum = messagenum + 1              '=======================================================================              '=======================================================================                 delrange.highlightcolorindex = wdpink              'remove comment delete           end if      'ending if find1strange .found = true      loop        'ending while .execute loop  end    'ending find1strange.find statement     '=======================================================================  '=======================================================================  'new code  activedocument.content.delete  dim emailsarrayposition long   emailsarrayposition = 1 (messagenum - 1)  ' -1 cater final increment        activedocument.content.insertafter emails(emailsarrayposition) & vbnewline & vbnewline   next emailsarrayposition  '=======================================================================  '=======================================================================    end sub 

Comments

Popular posts from this blog

Hatching array of circles in AutoCAD using c# -

ios - UITEXTFIELD InputView Uipicker not working in swift -

Python Pig Latin Translator -