I have the following code:
Sub TEST_____________Data_Validation_Machine()
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim Range
Is there any reason you're using VBA to accomplish this?
There's plenty of examples on Google showing how to accomplish this with named ranges, and an example I wrote up some time back that shows how you can use a Table to host your lists that allows cascading DV many levels deep, at the following links: