Kiều Mạnh
I don't program, I beat code into submission!!!
- Tham gia
- 9/6/12
- Bài viết
- 5,421
- Được thích
- 4,035
- Giới tính
- Nam
Nếu chỉ Add mỗi cái Validation thì xài code sau đi cho nó gọnĐúng là có người bàn và vấn đề đã ra, không cần tạo name, đúng là 1 nhóm người cùng suy nghĩ có khác
sửa lại code bài 35 một tí, dùng dic lấy duy nhất sau đó đưa vào trong validation
Mã:Public Sub LIST() Dim Dic As Object, Arr(), I As Long, TEM As String, K As Long Dim rng As Range Application.ScreenUpdating = False Set Dic = CreateObject("Scripting.Dictionary") DONGCUOI = Sheet1.Range("D65000").End(xlUp).Row Set rng = Sheet1.Range("D2:D" & DONGCUOI) ReDim Arr(1 To DONGCUOI) For I = 1 To DONGCUOI - 1 TEM = rng(I, 1) If Not Dic.Exists(TEM) Then K = K + 1 Dic.Add TEM, K Arr(K) = rng(I, 1).Value End If Next I TEM = Join(Arr, ",") For I = K To DONGCUOI TEM = Replace(TEM, ",,", ",") Next TEM = Left(TEM, Len(TEM) - 1) With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=TEM End With Application.ScreenUpdating = true End Sub
PHP:
Public Sub DicAdd_Validation()
Dim dl(), i As Long, Dic As Object
dl = Range([D2], [D65536].End(3)).Value
Set Dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(dl)
Dic(dl(i, 1)) = ""
Next
Range("G2").Validation.Delete
Range("G2").Validation.Add 3, , , Join(Dic.keys, ",")
Set Dic = Nothing
End Sub