Iterar a través de la lista desplegable de VBA

Tengo tres listas de validación desplegables y estoy tratando de escribir un código que recorra en iteración todas las permutaciones de "Métodos de administración" que están disponibles.

Puedo descubrir el primer paso de iterar a través de una lista (por ejemploIterar a través de una lista desplegable / validación de Excel y otros) pero no puedo resolver cómo pasar por tres de ellos.

Idealmente, me gustaría que esto se escriba de una manera que funcione incluso si agrega más opciones.

Para lograr esto, supongo que desea una forma de contar cuántas opciones hay en cada lista y luego iterar desde 0-n.

Cualquier ayuda sería muy apreciada.

Sub LoopThroughList()
Dim Dropdown1, Dropdown2, Dropdown3 As String
Dim Range1, Range2, Range3 As Range
Dim option1, option2, option3 As Range

' *** SET DROPDOWN LOCATIONS HERE ***
' ***********************************

    Dropdown1 = "C6"
    Dropdown2 = "D6"
    Dropdown3 = "E6"

' ***********************************
' ***********************************

Set Range1 = Evaluate(Range(Dropdown1).Validation.Formula1)
Set Range2 = Evaluate(Range(Dropdown2).Validation.Formula1)
Set Range3 = Evaluate(Range(Dropdown3).Validation.Formula1)

For Each option1 In Range1
    For Each option2 In Range2
        For Each option3 In Range3

            Worksheets("Sheet1").Range("C6:E6").Copy
            With Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
                .PasteSpecial Paste:=xlPasteColumnWidths
                .PasteSpecial Paste:=xlPasteValues
            End With


        Next option3
    Next option2
Next option1


End Sub

En este momento me sale esto:

Esto está iterando a través del menú desplegable de tipo de cultivo pero devuelve lo mismo para las plagas y los métodos de manejo. El código que usé para crear la lista desplegable es el siguiente:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub

    If Not Intersect(Target, Range("C6")) Is Nothing Then
        Range("D6:E6").ClearContents
    End If

End Sub

Respuestas a la pregunta(1)

Su respuesta a la pregunta