vitinhvnbmt
Thành viên hoạt động



- Tham gia
- 30/5/09
- Bài viết
- 108
- Được thích
- 7
mình muốn tạo drop down list ở cột G phụ thuộc vào việc mình chọn ở cột F tương ứng.
loay hoay tìm kiếm bằng google cũng ra được một cái hướng dẫn nhưng mình đã làm theo hướng dẫn mà không ra kết quả, nhờ GPE hoàn thiện giúp?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sArr(), I As Long, J As Long, Tem As String
If Not Intersect(Target, Range("G3:G100")) Is Nothing Then
If Target.Rows.Count = 1 Then
If Target.Offset(, -1) <> Empty Then
sArr = Range("B2:D100").Value
For J = 1 To UBound(sArr, 2)
If sArr(1, J) = Target.Offset(, -1).Value Then
For I = 2 To UBound(sArr)
If sArr(I, J) <> Empty Then
Tem = Tem & sArr(I, J) & ","
Else
Exit For
End If
Next I
Exit For
End If
Next J
With Target.Validation
.Delete
.Add xlValidateList, Formula1:=Tem
End With
End If
End If
End If
End Sub
Cách bố trí dữ liệu của bạn chưa tổng quát, mình sửa lại chút cho tổng quát.
Alt+F11, Copy cái này vào sheet1(sheet 13)
PHP:Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim sArr(), I As Long, J As Long, Tem As String If Not Intersect(Target, Range("G3:G100")) Is Nothing Then If Target.Rows.Count = 1 Then If Target.Offset(, -1) <> Empty Then sArr = Range("B2:D100").Value For J = 1 To UBound(sArr, 2) If sArr(1, J) = Target.Offset(, -1).Value Then For I = 2 To UBound(sArr) If sArr(I, J) <> Empty Then Tem = Tem & sArr(I, J) & "," Else Exit For End If Next I Exit For End If Next J With Target.Validation .Delete .Add xlValidateList, Formula1:=Tem End With End If End If End If End Sub
Bạn nhấn Ctrl+F3, chọn New ở mục Name bạn đặt tên là Thucan, ở mục Refers to bạn gõ như sau:cảm ơn bạn. kết quả tốt hơn cả những gì mình mong đợi
nhưng mình nhìn vào đó mà không biết cách làm bạn à
bạn tạo data validation như thế nào ở vùng A3:B36 đó? bạn hướng dẫn mình cụ thể hơn được không?
=OFFSET(Sheet13!$H$2,,,,MATCH("*",Sheet13!$H$2:$ZZ$2,-1))
=OFFSET(Sheet13!$H$2,1,MATCH(Sheet13!A3,Thucan,0)-1,MATCH("*",OFFSET(Sheet13!H$3,,MATCH(Sheet13!A3,Thucan,0)-1,1000,),-1))
Bạn nhấn Ctrl+F3, chọn New ở mục Name bạn đặt tên là Thucan, ở mục Refers to bạn gõ như sau:
Nhấp OK, sau đó đóng cửa sổ Name Maneger lại. Tiếp theo bạn quét chọn vùng từ A3:A36 và thực hiện theo hình.Mã:=OFFSET(Sheet13!$H$2,,,,MATCH("*",Sheet13!$H$2:$ZZ$2,-1))
View attachment 163224
Tiếp theo bạn chọn ô B3 và nhấn Ctrl+F3 chọn New, ở mục Name bạn đặt tên là Ten, ở mục Refers to bạn gõ như sau:
Nhấp OK, sau đó đóng cửa sổ Name Maneger lại. Tiếp theo bạn quét chọn vùng từ B3:B36 và thực hiện theo hình.Mã:=OFFSET(Sheet13!$H$2,1,MATCH(Sheet13!A3,Thucan,0)-1,MATCH("*",OFFSET(Sheet13!H$3,,MATCH(Sheet13!A3,Thucan,0)-1,1000,),-1))
View attachment 163225
Alt + D +L có tạo được bảng dữ liệu theo mẫu, có tạo được name với hàm Offset, ... để ra kết quả mong muốn của chủ đề này không vậy bạn? Câu trả lời của bạn bâng quơ quá, không giúp ích được gì cả.Alt + D +L phím tắt huyền thoại