Làm sao để tạo textbox tìm kiếm giống google? (2 người xem)

  • Thread starter Thread starter Luxife
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

Luxife

Thành viên mới
Tham gia
27/3/08
Bài viết
23
Được thích
0
Mình có 1 sheet dữ liệu, giờ muốn tạo 1 cái textbox, khi mình gõ vào 123 thì nó sẽ nhảy đến dòng ô 123, sau khi mình xóa dòng 123 đó đi thì textbox đó tự động bôi đen hoặc xóa rỗng textbox đó, nhờ mọi người giúp code nhé, tham khảo trên mạng mấy ngày nay nhưng chưa ưng ý, thanks.

Nếu được thì thêm chức năng "Alway on top", luôn hiện trong sheet mà mình tìm kiếm, bất kể khi nào nó nhảy đến thì ngon quá, hehe.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Lên lần nữa cho các bác biết vào giúp :D

Chỉ cần thêm chức năng tìm kiếm giá trị tiếp theo trong textbox, VD: nhập 7777 thì nó nhảy đến ô chứa 7777 (đầu sheet), nhấn Enter phát nữa thì nó nhảy đến 7777 (giữa sheet), lần nữa thì nhảy đến 7777 (cuối sheet)

Cảm ơn các bác.
 
Upvote 0
File này bác gửi đâu có textbox và code gì đâu?
Bác check lại với, thanks :D
Mình bỏ Textbox rồi (Lý do cái Textbox và ô có gì khác đâu nếu nhìn vào) và thay vì gõ vào textbox bây giờ bạn gõ vào cái ô màu vàng đó và nhấn enter thử xem.
 
Upvote 0
Textbox có thể xử lý always on top, thiết lập enter trong textbox cũng đc nhưng phải kết hợp check senkeys. Còn di chuyển cuối hay đầu row thì thêm vài xử lý goto.
 
Upvote 0
Textbox có thể xử lý always on top, thiết lập enter trong textbox cũng đc nhưng phải kết hợp check senkeys. Còn di chuyển cuối hay đầu row thì thêm vài xử lý goto.
Câu này không sai, nhưng trong file thực tế áp dụng trong trường hợp này là không hề sử dụng tới những cái bạn nêu ở đây.
 
Upvote 0
Câu này không sai, nhưng trong file thực tế áp dụng trong trường hợp này là không hề sử dụng tới những cái bạn nêu ở đây.
Em đã vọc một đoạn code theo cấu trúc như sau. Tuy trường hợp này không nhất thiết phải phức tạp vậy, nhưng việc tìm hiểu cách code cũng khá thú vị.
1. Một textbox
2. Các code sử dụng
+ Code kiểm tra textbox là rỗng hay có giá trị:
+ Nếu rỗng thì set màu xám
+ Nếu có giá trị kiểm tra xem có phải là số không
+ Nếu số: Kiểm tra xem có vượt quá giới hạn Row không
+ Nếu có thì báo lỗi, thoát
+ Nếu không: Chạy code kiểm ta senkeys enter
+ Nếu đúng di chuyển đến số hợp lệ
+ Code kiểm tra vùng hiển thị dữ liệu để set chức năng always on top.
 
Upvote 0
Thử cách củ chuối này xem sao?
Anh giaiphap giúp em sửa lại code tìm kiếm theo vùng địa chỉ được không ạ. File của anh là tìm kiếm nội dung trên toàn bộ sheet1, giờ giả sử em chỉ muốn tìm từ ô K4:M10 thì làm thế nào ạ. Em loay hoay chưa sửa được
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$1" Then
    If Target.Value = "" Then Exit Sub
    UserForm1.Show 0
    UserForm1.ListBox1.Clear
Dim firstAddress As String, c, rng As Range
With Worksheets(1).UsedRange
    Set rng = Sheet1.Range("N1:N1000")
    Set c = rng.Find(Target.Value, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            If c.Address <> Target.Address Then UserForm1.ListBox1.AddItem c.Address
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End If
End Sub
Em sửa thế mà hổng được anh ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Anh giaiphap giúp em sửa lại code tìm kiếm theo vùng địa chỉ được không ạ. File của anh là tìm kiếm nội dung trên toàn bộ sheet1, giờ giả sử em chỉ muốn tìm từ ô K4:M10 thì làm thế nào ạ. Em loay hoay chưa sửa được
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$1" Then
    If Target.Value = "" Then Exit Sub
    UserForm1.Show 0
    UserForm1.ListBox1.Clear
Dim firstAddress As String, c, rng As Range
With Worksheets(1).UsedRange
    Set rng = Sheet1.Range("N1:N1000")
    Set c = rng.Find(Target.Value, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            If c.Address <> Target.Address Then UserForm1.ListBox1.AddItem c.Address
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End If
End Sub
Em sửa thế mà hổng được anh ạ
Chổ màu đỏ nè bạn.
Set rng = Sheet1.Range("K4:M10")
 
Upvote 0
Chổ màu đỏ nè bạn.
Set rng = Sheet1.Range("K4:M10")
[Bác giaiphap cho em phiền tý nữa ạ, em chưa hiểu chỗ này lắm:
Mã:
 If c.Address <> Target.Address Then UserForm1.ListBox1.AddItem c.Address
Giả sử em muốn tạo 2 cột dữ liệu trong UserForm1.ListBox1 (Cột thứ nhất là c.Address, cột thứ 2 là giá trị c) thì phải làm thế nào ạ
 
Upvote 0
[Bác giaiphap cho em phiền tý nữa ạ, em chưa hiểu chỗ này lắm:
Mã:
 If c.Address <> Target.Address Then UserForm1.ListBox1.AddItem c.Address
Giả sử em muốn tạo 2 cột dữ liệu trong UserForm1.ListBox1 (Cột thứ nhất là c.Address, cột thứ 2 là giá trị c) thì phải làm thế nào ạ
Bạn xem lại file nhé!
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom