1
我需要一種方法來從用戶窗體選框中選擇多個項目。我相信我有一個邏輯錯誤,一旦語句正確,邏輯不會繼續。使用自動篩選器和用戶窗體選擇多個項目
這裏是我目前擁有的代碼:
If flt_type_cb1.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=DOM"
ElseIf flt_type_cb2.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=AK"
ElseIf flt_type_cb3.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=HI", Operator:=xlOr, Criteria2:="HI-LH"
ElseIf flt_type_cb4.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=INTL-ASIA", Operator:=xlOr, Criteria2:="INTL-ASIA-PJ"
ElseIf flt_type_cb5.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=PS"
ElseIf flt_type_cb6.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=GU", Operator:=xlOr, Criteria2:="GUMHNL"
ElseIf flt_type_cb7.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=LATBUS"
ElseIf flt_type_cb8.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=INTL", Operator:=xlOr, Criteria2:="INTL-PJ"
End If
我就比如希望能夠選擇DOM和PS。
通過使用'elseif',當條件滿足,代碼跳過休息。如果您遇到這種情況,您可能需要考慮使用單獨的「if」語句。 – Tehscript
您可以構建過濾器值的字符串應用然後加載像[本答案]中的最後一個選項(https://stackoverflow.com/questions/38404176/using-string-array-as-criteria-in-vba-autofilter #38404521)。要構建字符串值youi可以循環複選框(假設控件是這樣的)和基於複選框編號的測試條件。 –
我對循環邏輯有困難,所以我傾向於做單獨的if語句。如果我沿着if語句路徑,我應該創建一個新變量作爲變體,對於每個真實情況,將字符串添加到變量,然後執行xlFilterValues? 編輯:第二個想法是預定義數組然後設置每個值等於什麼都沒有找到時更好? –