I would suggest naming your ranges, and to make it easy, use VBA to do it. Copy and paste the following into a code module(replace Sheet1 with your sheet name):
Sub CreateNames()
ActiveWorkbook.Names.Add Name:="G3LabUniversalDV", RefersToR1C1:="=Sheet1!R63:R122,Sheet1!R195:R396,Sheet1!R1249:R1265,Sheet1!R1301:R1302"
End Sub
Copy and paste the code line 3 times and adjust the copies for your other three ranges. Then run the code to create the names. Then replace all your code above with:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("C18")) Is Nothing Then Exit Sub
Application.EnableEvents = False ' I don't know if this is still needed or not
Rows("1:2000").EntireRow.Hidden = False
Range(Range("C18").value).EntireRow.Hidden=true
end sub
I haven't tested this entirely, but it should be close.
Bookmarks