Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
In my code below (which runs OK), when vbNo is returned from the msgbox, I
want to skip past any comp that is Premier League. Although the code runs Ok, after the first test for "Premier League" in each comp, the subsequent tests are not required - How could I restructure to make the code more efficient? PremierLeague = MsgBox("Include PremierLeague Matches?", vbYesNo) For Each comp In Schedule For Each Rownd In Range(comp) 'test for Premier league For Each Item In Range(comp & "_" & Rownd) If Left(comp, 13) = "PremierLeague" Then If PremierLeague = vbNo Then Exit For End If End If Do stuff Next Next Next -- David |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
How about this
PremierLeague = MsgBox("Include PremierLeague Matches?", vbYesNo) fExit = False For Each comp In Schedule For Each rownd In Range(comp) 'test for Premier league For Each Item In Range(comp & "_" & rownd) If Left(comp, 13) = "PremierLeague" Then If PremierLeague = vbNo Then fExit = True Exit For End If End If 'Do stuff Next Item If fExit Then Exit For Next rownd If fExit Then Exit For Next comp also.take a look at http://www.xldynamic.com/source/xld.LeagueTable.html -- HTH RP (remove nothere from the email address if mailing direct) "David" wrote in message ... In my code below (which runs OK), when vbNo is returned from the msgbox, I want to skip past any comp that is Premier League. Although the code runs Ok, after the first test for "Premier League" in each comp, the subsequent tests are not required - How could I restructure to make the code more efficient? PremierLeague = MsgBox("Include PremierLeague Matches?", vbYesNo) For Each comp In Schedule For Each Rownd In Range(comp) 'test for Premier league For Each Item In Range(comp & "_" & Rownd) If Left(comp, 13) = "PremierLeague" Then If PremierLeague = vbNo Then Exit For End If End If Do stuff Next Next Next -- David |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Bob, for a solution + extra tip
Much appreciated -- David |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
One way:
For Each comp In Schedule If PremierLeague = vbNo Then _ If comp.Text Like "PremierLeague*" Then Exit For For Each Rownd in Range(comp.Text) For Each rItem In Range(comp.Text & "_" & Rownd.Text) 'Do Stuff Next rItem Next Rownd Next comp Note that using keywords like "Item" is generally considered bad practice In article , "David" wrote: In my code below (which runs OK), when vbNo is returned from the msgbox, I want to skip past any comp that is Premier League. Although the code runs Ok, after the first test for "Premier League" in each comp, the subsequent tests are not required - How could I restructure to make the code more efficient? PremierLeague = MsgBox("Include PremierLeague Matches?", vbYesNo) For Each comp In Schedule For Each Rownd In Range(comp) 'test for Premier league For Each Item In Range(comp & "_" & Rownd) If Left(comp, 13) = "PremierLeague" Then If PremierLeague = vbNo Then Exit For End If End If Do stuff Next Next Next |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks for your advice JE
-- David |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Inefficient? | Excel Programming | |||
Inefficient Space Removal | Excel Programming | |||
Loop worked but is it inefficient? | Excel Programming | |||
Loop worked but is it inefficient? | Excel Programming | |||
Inefficient VBA Code - Worksheets Property | Excel Programming |