Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 09-27-2018, 03:52 PM
macropod's Avatar
macropod macropod is offline Best way to test for multiple scenarios, but just one outcome Windows 7 64bit Best way to test for multiple scenarios, but just one outcome Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,516
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Looping through all paragraphs in a long document and testing all possible combinations is liable to be quite slow. What I'd be inclined to use is a Find/Replace that looks for the primary Styles of interest, then check what precedes them, thus:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim ArrFnd, ArrPre, ArrRep, i As Long
ArrFnd = Array("List: Bullet", "List: Numbered")
ArrPre = Array("Body Text", "Body Text")
ArrRep = Array("Body Text: Pre-list", "Body Text: Pre-list")
For i = 0 To UBound(ArrFnd)
  With ActiveDocument.Range
    With .Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = ""
      .Replacement.Text = ""
      .Forward = True
      .Wrap = wdFindStop
      .Format = True
      .Style = ArrFnd(i)
      .Execute
    End With
    Do While .Find.Found
      If .Information(wdWithInTable) = True Then
        .End = .Tables(1).Range.End
      Else
        With .Paragraphs.First.Previous.Range.Paragraphs.First
          If .Style = ArrPre(i) Then .Style = ArrRep(i)
        End With
      End If
      If .End = ActiveDocument.Range.End Then Exit Do
      .Collapse wdCollapseEnd
      .Find.Execute
    Loop
  End With
Next
Application.ScreenUpdating = True
End Sub
Note how the code uses three arrays: ArrFnd holds a list of the primary Styles of interest; ArrPre holds a list of the preceding Styles to test; ArrRep holds a list of the preceding Styles to apply. It's essential that all the arrays have the same number of elements and that their entries are in the required order.
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote
 



Similar Threads
Thread Thread Starter Forum Replies Last Post
Help on using scenarios in Excel tjthomps23 Excel 0 01-20-2017 10:09 AM
How can I generate Scenarios? tommade Excel Programming 0 02-18-2016 04:56 PM
Lookup multiple values and compare different scenarios to get a specific result mws Excel 5 05-24-2014 04:52 AM
Best way to test for multiple scenarios, but just one outcome Creating a multiple choice test McDoug Office 2 10-19-2012 10:02 AM
Best way to test for multiple scenarios, but just one outcome How to make a multiple-choice test? micahfaulkner75 Mail Merge 1 09-12-2012 06:08 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 02:36 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft