I believe you should concider achieving the same effect by using validation. Allow a list, "=namedRange", Instead of combo2, use the same thing, but write =indirect([cell-with-the-first-validation]).
Or in detail:
Presume the following data is entered in sheet2:
A B C
1 Fruit Apple Tomato
2 Salad Pear Lettuce
3 Orange
4
5
Define sheet2!A1:A2 as "firstchoice"
Define sheet2!B1:B3 as "Fruit"
Define sheet2!C1:C2 as "Salad"
Select a preferred cell (example sheet1!A1), choose 'validation' in the 'data' menu. In 'allow'-drop down menu, select 'list'. In the 'source' field, write "=firstchoice".
Select another preferred cell (example sheet1!A2), choose 'validation' in the 'data' menu. In 'allow'-drop down menu, select 'list'. In the 'source' field, write "=indirect(A1)" (in our example). There is of course no problems using vlookup and other functions in the 'source' field, as long as it refers to the same sheet and workbook (named ranges is a good way to get around that problem).
The reason I think you should use this is 1/ the features unde the other tabs in 'validation' - input message, error alert - and 2/ the security aspect not involving macros (making it easier for users with "high" security settings.
// Patrik