![](/img/trans.png)
[英]Modifying Excel vba that creates all possible combinations from multiple lists
[英]In Excel, I want to iterate through two drop down lists to run all possible combinations using VBA
我的目標是擁有一個Excel宏。 在Excel中,我想遍歷兩個下拉列表以使用VBA運行所有可能的組合。
問題在於下拉列表必須手動進行遍歷。
第二個下拉列表取決於第一個下拉列表。 第一個下拉列表是3種類型的車輛:福特,豐田和馬自達。 第二個下拉列表是維修站點:福特經銷店,豐田經銷店,馬自達經銷店,一般維修店A和一般維修店B。第二個依賴項是福特經銷店只能維修福特。 豐田汽車經銷店只能修理豐田汽車。 馬自達經銷商只能維修馬自達。 普通維修店A和普通維修店B可以維修任何類型的車輛。 實際問題的數據集更大,我必須使用Excel來解決問題。
我嘗試使用兩個四個循環。 但是,我不想發生很多組合。
sub test()
Dim i as Integer
Dim j as Integer
For i =1 to 3
Next i
For j=1 to 5
Next j
End Sub()
假設下拉列表是表單控件,那么您將執行以下操作。
Sub AutoIterate()
Dim i As Long, j As Long
Dim cmb1 As ControlFormat, cmb2 As ControlFormat
Set cmb1 = ActiveSheet.Shapes("Drop Down 1").ControlFormat 'change the worksheet and the combobox name to those that fit for you.
Set cmb2 = ActiveSheet.Shapes("Drop Down 2").ControlFormat
For i = 1 To cmb1.ListCount
For j = 1 To cmb2.ListCount
If (cmb2.List(j) Like "*" & cmb1.List(i) & "*") Or (cmb2.List(j) Like "*General*") Then
Debug.Print cmb1.List(i) & " - " & cmb2.List(j)
End If
Next
Next
Set cmb1 = Nothing
Set cmb2 = Nothing
End Sub
請記住,如果:
那么這也將完成更多數據的工作。
否則,只需相應地調整If語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.