0
我有4個下拉菜單在Excel中讀取相同的範圍。鏈接多個下拉菜單和刪除/隱藏重複項
我已經使用了'數據驗證'中的下拉菜單。
我想刪除/隱藏已在其他下拉菜單(即其他3)中選擇的選擇。當然,如果用戶改變了他們的想法,我想讓選項/選項重新出現在每個下拉菜單中。
我曾試圖谷歌,但我沒有很多運氣。
謝謝。
我有4個下拉菜單在Excel中讀取相同的範圍。鏈接多個下拉菜單和刪除/隱藏重複項
我已經使用了'數據驗證'中的下拉菜單。
我想刪除/隱藏已在其他下拉菜單(即其他3)中選擇的選擇。當然,如果用戶改變了他們的想法,我想讓選項/選項重新出現在每個下拉菜單中。
我曾試圖谷歌,但我沒有很多運氣。
謝謝。
有了這個樣本:
名爲DataVal1(從E4:E10)的範圍驗證,使用此代碼:當你改變一個下拉的驗證
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LstVal(1 To 10) As String
Dim Tmp(1 To 10)
Dim Coll As New Collection
Dim Vali As Integer
Dim i, x As Integer
Dim DropLst
Dim Dval
Dim xx
Dim SRange As String
SRange = "B4:B8"
Vali = 1
For Each DropLst In Range(SRange)
Set Coll = Nothing
For Each Dval In Range("DataVal1")
Coll.Add Dval.Value
Next
For Each xx In Range(SRange)
If DropLst.Address = xx.Address Then GoTo ENext
For x = 1 To Coll.Count
If Coll(x) = xx.Value Then
Coll.Remove (x)
GoTo ENext
End If
Next
ENext:
Next
Tmp(Vali) = ""
For i = 1 To Coll.Count
If (Tmp(Vali) <> "") Then Tmp(Vali) = Tmp(Vali) & "," & Coll(i)
If (Tmp(Vali) = "") Then Tmp(Vali) = Tmp(Vali) & Coll(i)
Next
With DropLst.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Tmp(Vali)
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Vali = Vali + 1
Next
End Sub
,另一個則使用新的動態列表進行驗證。
有了這段代碼,你可以添加多少驗證你想要的,改變SRange範圍...
如果你想確認單元不在附近,你需要一點點代碼...