Sửa code tạo list gợi ý khi nhập liệu

Liên hệ QC

VuVanHao

Thành viên thường trực
Tham gia
20/6/18
Bài viết
246
Được thích
118
Nhờ mọi người giúp em chỉnh lại code cho phù hợp ạ,
Em lấy trên diễn đàn 1 file về nhập liệu theo danh sách gợi ý:
Nhưng do cấu trúc bảng của em thay đổi lên nó hiện lên 1 số lỗi:
- Em muốn nhập liệu ở cột C sheet N ạ
Nhờ mọi người chỉnh dùm em ạ. Và nếu giải thích cho em thông não thì càng tuyệt vời ạ.
Em cảm ơn!
 

File đính kèm

Nhờ mọi người giúp em chỉnh lại code cho phù hợp ạ,
Em lấy trên diễn đàn 1 file về nhập liệu theo danh sách gợi ý:
...
Nhưng do cấu trúc bảng của em thay đổi lên nó hiện lên 1 số lỗi:
- Em muốn nhập liệu ở cột C sheet N ạ
Nhờ mọi người chỉnh dùm em ạ.
Nếu tôi đoán được ý thì sửa Sub loc thành
Mã:
Sub loc()
Dim dl(), i As Long
dl = Sheet2.[B2:B1000].Value
ActiveSheet.ListBox1.Clear
For i = 1 To UBound(dl)
   If dl(i, 1) <> "" Then
      If TV(dl(i, 1)) Like TV("*" & ActiveSheet.TextBox1.Value & "*") Then
         ActiveSheet.ListBox1.AddItem dl(i, 1)
      End If
   End If
Next
End Sub
Và nếu giải thích cho em thông não thì càng tuyệt vời ạ.
Em cảm ơn!
Bạn có code
Mã:
Sub loc()
Dim dl(), i As Long, c As Byte
dl = Sheet2.[B2:B1000].Value
ActiveSheet.ListBox1.Clear
c = ActiveCell.Column
For i = 1 To UBound(dl)
   If dl(i, c) <> "" Then
      If TV(dl(i, c)) Like TV("*" & ActiveSheet.TextBox1.Value & "*") Then
         ActiveSheet.ListBox1.AddItem dl(i, c)
      End If
   End If
Next
End Sub
Trong mảng dl chỉ có 1 cột (đó là cột B nhập vào) nên khi truy cập tới cột thứ 3 (c = 3 do bạn đang chọn ô ở cột C - cột thứ 3 trong sheet N) sẽ có lỗi.

dl(i, c) = dl(i, 3) -> lỗi.

Không có c gì ở đây cả, và thay dl(i, c) bằng dl(i, 1) thôi.
 
Upvote 0
Nếu tôi đoán được ý thì sửa Sub loc thành
Mã:
Sub loc()
Dim dl(), i As Long
dl = Sheet2.[B2:B1000].Value
ActiveSheet.ListBox1.Clear
For i = 1 To UBound(dl)
   If dl(i, 1) <> "" Then
      If TV(dl(i, 1)) Like TV("*" & ActiveSheet.TextBox1.Value & "*") Then
         ActiveSheet.ListBox1.AddItem dl(i, 1)
      End If
   End If
Next
End Sub

Bạn có code
Mã:
Sub loc()
Dim dl(), i As Long, c As Byte
dl = Sheet2.[B2:B1000].Value
ActiveSheet.ListBox1.Clear
c = ActiveCell.Column
For i = 1 To UBound(dl)
   If dl(i, c) <> "" Then
      If TV(dl(i, c)) Like TV("*" & ActiveSheet.TextBox1.Value & "*") Then
         ActiveSheet.ListBox1.AddItem dl(i, c)
      End If
   End If
Next
End Sub
Trong mảng dl chỉ có 1 cột (đó là cột B nhập vào) nên khi truy cập tới cột thứ 3 (c = 3 do bạn đang chọn ô ở cột C - cột thứ 3 trong sheet N) sẽ có lỗi.

dl(i, c) = dl(i, 3) -> lỗi.

Không có c gì ở đây cả, và thay dl(i, c) bằng dl(i, 1) thôi.
Dạ, code chạy chuẩn rồi ạ
Em cảm ơn ạ
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom