thanhphuongvip
Mới học VBA, hỏi ngu anh chị đừng chửi ạ
- Tham gia
- 16/1/10
- Bài viết
- 136
- Được thích
- 22
Cách đơn giản là Copy cột J sang cột K, Remove Duplicates cột K làm list cho Data ValidationChào cả nhà GPE!
Mình tạo list Data ở cột B, bằng DataValidation lấy dữ liệu ở cột J, cho mình hỏi làm cách nào khi tạo List xong bấm chọn ở cột B nó sẽ lọc ra những giá trị duy nhất (không trùng nhau) ở cột J. Xin cảm ơn!
View attachment 218019
Mình đã nghĩ ra cách như Ba Tê nói, tuy nhiên phải làm như thế để mình làm tiếp DataValidation ở cột C để chọn mục Chi tiết theo Nhóm (nghĩa là nhóm nào chỉ hiện ra mục chi tiết của nhóm đó)Cách đơn giản là Copy cột J sang cột K, Remove Duplicates cột K làm list cho Data Validation
Làm được chuyện 1 thì làm tiếp chuyện 2 thôi mà. Thử xemMình đã nghĩ ra cách như Ba Tê nói, tuy nhiên phải làm như thế để mình làm tiếp DataValidation ở cột C để chọn mục Chi tiết theo Nhóm (nghĩa là nhóm nào chỉ hiện ra mục chi tiết của nhóm đó)
Bạn dùng thử cái này.Chào cả nhà GPE!
Mình tạo list Data ở cột B, bằng DataValidation lấy dữ liệu ở cột J, cho mình hỏi làm cách nào khi tạo List xong bấm chọn ở cột B nó sẽ lọc ra những giá trị duy nhất (không trùng nhau) ở cột J. Xin cảm ơn!
View attachment 218019
Thử cách sau, tiêu đề Name không dấu (nếu có dấu không thực hiện được.Chào cả nhà GPE!
Mình tạo list Data ở cột B, bằng DataValidation lấy dữ liệu ở cột J, cho mình hỏi làm cách nào khi tạo List xong bấm chọn ở cột B nó sẽ lọc ra những giá trị duy nhất (không trùng nhau) ở cột J. Xin cảm ơn!
View attachment 218019
Cách của anh "hơi bị" nhiều Names.Thử cách sau, tiêu đề Name không dấu (nếu có dấu không thực hiện được.
Quá tuyệt vời, một code đã sử lý được cả 2 yêu cầu mà mình muốn. Mình sẽ lưu code này lại để ngâm cứu và sài về sau! Cảm ơn Snow rất nhiều!!Bạn dùng thử cái này.
Cảm ơn bác Ba Tê, chiêu này ko dùng VBA, khá hay! Mình sẽ dành để hướng dẫn những bạn nào sợ VBACách của anh "hơi bị" nhiều Names.
Có được list cho cột trước thì chỉ cần 1 Name cho cột sau là đủ.
Bạn thay cái code đó bằng cái này xem.Snow cho mình hỏi thêm, nó báo lỗi code mỗi lần nhập một giá trị ko có trong list, hoặc khi xóa ô đó cũng vậy, vậy khắc phục thế nào nhỉ?
View attachment 218040
View attachment 218041
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr, s As String, i As Long, dk As String
If Not Intersect(Target, Range("b3:b23")) Is Nothing Then
If Target.Count = 1 Then
dk = Target.Value
arr = Range("i4:j22").Value
For i = 1 To UBound(arr, 1)
If dk = arr(i, 2) Then
s = s & "," & arr(i, 1)
End If
Next i
Target.Offset(, 1).Validation.Delete
If Len(s) Then
s = Right(s, Len(s) - 1)
With Target.Offset(, 1).Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=s
End With
End If
End If
End If
End Sub
Khi xóa một ô ở cột B nó vẫn báo lỗi như vậy Snow ơi !??Bạn thay cái code đó bằng cái này xem.
Mã:Private Sub Worksheet_Change(ByVal Target As Range) Dim arr, s As String, i As Long, dk As String If Not Intersect(Target, Range("b3:b23")) Is Nothing Then If Target.Count = 1 Then dk = Target.Value arr = Range("i4:j22").Value For i = 1 To UBound(arr, 1) If dk = arr(i, 2) Then s = s & "," & arr(i, 1) End If Next i Target.Offset(, 1).Validation.Delete If Len(s) Then s = Right(s, Len(s) - 1) With Target.Offset(, 1).Validation .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=s End With End If End If End If End Sub
Ơ vẫn code cũ mà.Xóa cái này điền cái mới vào.Khi xóa một ô ở cột B nó vẫn báo lỗi như vậy Snow ơi !??
View attachment 218082
Ah, mình có một sự nhầm lẫn nhẹ. Đã đc rồi, cảm ơn Snow rất nhiều!Ơ vẫn code cũ mà.Xóa cái này điền cái mới vào.
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2