|
请帮忙把这个下面两个代码合并,非常感谢!
代码一:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, [b3:b70]) Is Nothing Then Exit Sub
Target.Offset(, 1).Resize(, 4).Validation.Delete
Target.Offset(, 1).Resize(, 4).ClearContents
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TheList As String, i&
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("A3:A500")) Is Nothing Then [a1] = Target: Exit Sub
If Intersect(Target, [b3:e70]) Is Nothing Then Exit Sub
Set d = CreateObject("scripting.dictionary")
arr = Sheet2.Range("c3:f" & Sheet2.[c65536].End(3).Row)
For i = 1 To UBound(arr)
x = arr(i, 1)
If Len(x) Then
If InStr(d(x) & ",", "," & arr(i, Target.Column - 1) & ",") = 0 Then d(x) = d(x) & "," & arr(i, Target.Column - 1)
End If
Next
TheList = IIf(Target.Column = 2, Join(d.keys, ","), Mid(d(Cells(Target.Row, 2).Value), 2))
With Target.Validation
.Delete
If Len(TheList) Then .Add xlValidateList, , , TheList
End With
End Sub
代码二:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, [j3:j70]) Is Nothing Then Exit Sub
Target.Offset(, 1).Resize(, 4).Validation.Delete
Target.Offset(, 1).Resize(, 4).ClearContents
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TheList As String, i&
If Target.Count > 1 Then Exit Sub
If Intersect(Target, [j3:m70]) Is Nothing Then Exit Sub
Set d = CreateObject("scripting.dictionary")
arr = Sheet5.Range("c3:f" & Sheet5.[c65536].End(3).Row)
For i = 1 To UBound(arr)
x = arr(i, 1)
If Len(x) Then
If InStr(d(x) & ",", "," & arr(i, Target.Column - 9) & ",") = 0 Then d(x) = d(x) & "," & arr(i, Target.Column - 9)
End If
Next
TheList = IIf(Target.Column = 10, Join(d.keys, ","), Mid(d(Cells(Target.Row, 10).Value), 2))
With Target.Validation
.Delete
If Len(TheList) Then .Add xlValidateList, , , TheList
End With
End Sub
- Private Sub Worksheet_Change(ByVal Target As Range)
- If Target.Count > 1 Then Exit Sub
- If Intersect(Target, [b3:b70]) Is Nothing Or Intersect(Target, [j3:j70]) Is Nothing Then Exit Sub
- Target.Offset(, 1).Resize(, 4).Validation.Delete
- Target.Offset(, 1).Resize(, 4).ClearContents
- End Sub
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- Dim TheList As String, i&
- If Target.Count > 1 Then Exit Sub
- If Not Application.Intersect(Target, Range("A3:A500")) Is Nothing Then [a1] = Target: Exit Sub
- Set d = CreateObject("scripting.dictionary")
- If Not Intersect(Target, [j3:m70]) Is Nothing Then
- arr = Sheet5.Range("c3:f" & Sheet5.[c65536].End(3).Row)
- For i = 1 To UBound(arr)
- x = arr(i, 1)
- If Len(x) Then
- If InStr(d(x) & ",", "," & arr(i, Target.Column - 9) & ",") = 0 Then d(x) = d(x) & "," & arr(i, Target.Column - 9)
- End If
- Next
- TheList = IIf(Target.Column = 10, Join(d.keys, ","), Mid(d(Cells(Target.Row, 10).Value), 2))
- End If
- If Not Intersect(Target, [b3:e70]) Is Nothing Then
- arr = Sheet2.Range("c3:f" & Sheet2.[c65536].End(3).Row)
- For i = 1 To UBound(arr)
- x = arr(i, 1)
- If Len(x) Then
- If InStr(d(x) & ",", "," & arr(i, Target.Column - 1) & ",") = 0 Then d(x) = d(x) & "," & arr(i, Target.Column - 1)
- End If
- Next
- TheList = IIf(Target.Column = 2, Join(d.keys, ","), Mid(d(Cells(Target.Row, 2).Value), 2))
- End If
- With Target.Validation
- .Delete
- If Len(TheList) Then .Add xlValidateList, , , TheList
- End With
- End Sub
复制代码
|
|