Depending on your conditions and which rows apply to the skips you refer to, there are a number of solutions here.
Here's an idea ...
Create a constructed list. The parent list will be the same list you use as your row list in the grid question.
I have assumed your grid question is Q1 and your row list is called OptionsList. So make the necessary edits where necessary.
Insert this script in to a constructed list (call it OptionsConList) ...
Begin Unverified Perl
if (VALUE("Q1_r1")==1 || VALUE("Q1_r1")==2)
if (VALUE("Q1_r2")==4 || VALUE("Q1_r2")==5)
This constructed list will save all row options from your grid question (I called it Q1) that meet the conditions you apply.
My example says if Q1 row 1=1 or 2, add Option 1 and if Q1 row 2=4 or 5, add Option 2.
You can add additional if statements for each relevant row and apply the necessary conditions.
Once the constructed list is finalised, you can use this condition to skip ...
This will skip a question if the number of options saved within the constructed list is greater than 5.
If you send through the following ...
*Grid question name
*What rows have what conditions
I can finalise the constructed list. You might want to have a go at it yourself using my example above.
Hope that gets you up and running.