Nhờ Anh xem giúp mình cái yêu cầu mình gửi ở trênThực sự chưa hiểu hết những gì bạn diễn đạt;
Bạn muốn bấm vô dòng nào đó trên ListBox thì dãy số liệu bạn cần sẽ hiện lên các TextBox?
Hiện giờ thì ComboBox giúp chúng ta lược bớt các dòng của những huyện/thị khác trong tỉnh
(Trong ListBox chỉ hiện những đường có trên huyện/thị của ComboBox ta đã chọn.)
Chậm hay nhanh với gần 999 dòng dữ liệu chắc không đán quan tâm bằng kéo trỏ chuột xuyên suốt tất thẩy những dòng đó.
Nhưng trong file đã dẫn đâu có 2 trang dữ liệu khác nhau nào đâu;- Một thắc mắc: Giả dụ mình có nhiều sheet data khác nhau (data 1 và data 2...) và mình muốn sheet Link sẽ gồm 2 combo box và 2 list (tức là thêm một cái bảng tra mới)
Nhưng trong file đã dẫn đâu có 2 trang dữ liệu khác nhau nào đâu;
Các trang 'CSDL' & 'CSDL(2)' đều trống trơn mà!
File của anh Hoang2013 hay với em quá. vì em nghiên cứu mày mò thêm được nhiều kiến thức bổ ích mới mẻ về sử dụng listboxXem trong file
Thực tế là cần 2 list box để tra cho nhanh vì một lúc tôi cần truy xuất dữ liệu từ 2 sheet này và mỗi sheet cần tối thiểu 2 list box như vậyMình vừa mở file lên & thấy dữ liệu troing 2 trang tính đó rồi.
Nhưng thêm théc méc: Sao dữ liệu chúng hết nhau làm vậy?
(1) Do bạn lười giả lập dữ liệu?
(2) Do thực tê là vậy & cần đến 2 ListBox?
Nếu (1) thì chỉ cần đổi tên các dòng hiễn thị huyện/thị thàng ra ở tỉnh khác là được.
Nếu (2) thì xuất hiện vấn đề: Bạn làm vậy có nguyên nhân là gì? Có đáng hay không?
Cảm ơn Anh, hôm qua ngồi với Anh Bé mới biết Anh:Đây là nổ lực cuối cùng của mình ngõ hầu giúp bạn:
(1) Trên trang 'Link' bạn cần 2 ListBox, điều đó đã rõ rồi!
Nhưng 2 ListBox này lấy nguồn từ 1 trang 'CSDL" hay từ cả trang 'CSDL' thứ hai (mỗi ListBox' có 1 nguồn từ 2 trang)?
(2) "& mỗi Sheet cần tối thiểu 2 ListBox như vậy" Vậy các ListBox này (4 hay 2?) nằm ở 1 hay 2 trang tính & chúng cụ thể trên những trang tính nào (nếu là 2 trang)
Phiền Anh xử lý hoàn thiện theo nhu cầu dùm!Tạm thời bạn thử vận hành cái này; Sẽ bổ sung sau
Hiện file mới nhất đó có 2 listBox lấy nguồn dữ liệu từ 'CSDL'Phiền Anh xử lý hoàn thiện theo nhu cầu dùm!
Sheet (Du lieu va CSDL) có giá trị khác nhau nhé Anh. Việc thêm 2 list box nữa là lấy dự liệu từ sheet (CSDL) chứ không phải ở sheet (Du lieu). 2 list box này nằm dưới dòng 16 trên trang link thì càng tốt ahHiện file mới nhất đó có 2 listBox lấy nguồn dữ liệu từ 'CSDL'
(Bạn thấy mỗi 1 ListBox làm 1 cách khác nhau để cung ứng dữ liệu tên đường fố bạn cần
Giờ hoàn thiện sẽ là sao sao đây:
Làm thêm 2 ListBox nữa để lấy dữ liệu từ trang 'DuLieu' & đưa ra hai vùng bên dưới dòng 16 trên trang 'Link;?
Nhưng dữ liệu ở trang mình gọi là 'DuLieu' giống hệt 'CSDL', thì làm thêm chúng để làm gì cơ chứ?
File ở bài #23 chúng có khác nhau đâu cơ chứ, đừng đùa chứ bạn!? Sheet Csdl va csdl2 co gia tri khác nhau Anh. Vi du: 25.000 va 27.500 do Anh
Anh xem lại với list box 3 và list box 4 vẫn lấy giá trị của sheet CSDL chứ không phỉa của sheet Dữ liệu như thông tin ở trên dòng list box ah
Sub DuLieuChoListBox(Sh As Worksheet, HThi As String)
Dim Arr()
Dim J As Long, Rws As Long, W As Integer, Dem As Integer, Ghi As Boolean
ReDim dArr(1 To 220, 1 To 9)
With Sh 'eets("CSDL") Sh' '<=|"
Rws = .[b4].CurrentRegion.Rows.Count
Arr() = .[A5].Resize(Rws, 10).Value
End With
For J = 1 To UBound(Arr())
If Ghi And Arr(J, 1) <> "" Then
W = W + 1
For Dem = 1 To 9
dArr(W, Dem) = Arr(J, 1 + Dem)
Next Dem
ElseIf Ghi And Arr(J, 1) = "" Then Exit For
End If
If Arr(J, 2) = HThi Then Ghi = True 'Me!cbHTDS.Text'
Next J
End Sub
Đoạn code này dưa vào chỗ nào ahÀ!, Mình xin lỗi do thiếu sót chổ này:
PHP:Sub DuLieuChoListBox(Sh As Worksheet, HThi As String) Dim Arr() Dim J As Long, Rws As Long, W As Integer, Dem As Integer, Ghi As Boolean ReDim dArr(1 To 220, 1 To 9) With Sh 'eets("CSDL") Sh' '<=|" Rws = .[b4].CurrentRegion.Rows.Count Arr() = .[A5].Resize(Rws, 10).Value End With For J = 1 To UBound(Arr()) If Ghi And Arr(J, 1) <> "" Then W = W + 1 For Dem = 1 To 9 dArr(W, Dem) = Arr(J, 1 + Dem) Next Dem ElseIf Ghi And Arr(J, 1) = "" Then Exit For End If If Arr(J, 2) = HThi Then Ghi = True 'Me!cbHTDS.Text' Next J End Sub
Bạn tìm macro có tên như vậy & chỉ thay mỗi 1 dòng lệnh thành vầy mà thôi:
(Macro này nằm ở trong cửa số VBE của Form)Mã:With Sh 'eets("CSDL") Sh' '<=|"