Co tôi hỏi về việc Find dữ liệu bằng Ctrl+F

  • Thread starter khongnghe_khongbiet
  • Ngày gửi
K

khongnghe_khongbiet

Guest
16/1/06
7
0
1
HN
Các đồng chí cho tôi hỏi một chút.

Tôi có một bảng dữ liệu có rất nhiều số. Tôi muốn là khi tôi dùng chức năng Find thì chỉ tìm kiếm ở những cột, hàng hoặc cell cho phép, còn những cái khác thì không. Chú ý là những ô khác chỉ ngăn chặn không cho tìm kiếm (find) ở đó chứ nhập dữ liệu vẫn phải OKi đó.

Xin chân thành cám ơn !!!
 
Khóa học Quản trị dòng tiền
L

linhtinh

Guest
Khi bác muốn tìm số trong vùng nào thì chọn vùng đó rồi ctrl+F vậy thôi ah.
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
Nếu bạn muốn bảo vệ dữ liệu không cho "tìm kiếm" e hơi "cao cấp" chăng? Tuy vậy bạn cũng có thể vận dụng Protect Sheet để che công thức, lệnh Find với xác lập mặc định là Look in Formula không thể tìm được. (Nhưng tìm giá trị thì vẫn được).
Cách bảo vệ sheet, không cho nhập dữ liệu vào ô, che công thức v...v bạn tìm "cuốn vở" Excel ebook của anh SA_DQ trong forum này để đọc.
 
HongViet

HongViet

Cao cấp
10/11/05
286
10
18
Đà nẵng
give here!

adam_tran nói:
Nếu bạn muốn bảo vệ dữ liệu . . .Cách bảo vệ sheet, không cho nhập dữ liệu vào ô, che công thức v...v bạn tìm "cuốn vở" Excel ebook của anh SA_DQ trong forum này để đọc.
http://webketoan.com/forum/showthread.php?t=9963 #18:atom:
 
W

workman

Guest
22/7/05
372
2
0
51
Ho Chi Minh
adam_tran nói:
Nếu bạn muốn bảo vệ dữ liệu không cho "tìm kiếm" e hơi "cao cấp" chăng? Tuy vậy bạn cũng có thể vận dụng Protect Sheet để che công thức, lệnh Find với xác lập mặc định là Look in Formula không thể tìm được. (Nhưng tìm giá trị thì vẫn được).
Cách bảo vệ sheet, không cho nhập dữ liệu vào ô, che công thức v...v bạn tìm "cuốn vở" Excel ebook của anh SA_DQ trong forum này để đọc.
Ừ, Adam nói đúng đấy. Cái này cao cấp quá, tôi chưa từng thấy ai làm việc này bao giờ cả. VBA hình như cũng không giải quyết được.
 
K

khongnghe_khongbiet

Guest
16/1/06
7
0
1
HN
Vấn đề phức tạp hen

Vấn đề phức tạp hen ..... :rocker:
 
HongViet

HongViet

Cao cấp
10/11/05
286
10
18
Đà nẵng
khongnghe_khongbiet nói:
Tôi muốn dùng chức năng Find thì chỉ tìm kiếm ở những cột, hàng hoặc cell cho phép, còn những cái khác thì không. Chú ý là những ô khác chỉ ngăn chặn không cho tìm kiếm (find) ở đó chứ nhập dữ liệu vẫn phải OKi đó.
Có cách này tôi mới ngẫm ra thôi, chưa thử:
1. Xoá/vô hiệu hoá nút lệnh FIND trên thanh menu đi!
2. Viết 1 Macro có câu lệnh Find ~ ô (Range) mà bạn gởi đến (cho phép)!
Thử đi, bạn sẽ thích ngay mà!
:dzo: :banana: :dzo:
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
568
99
28
66
HCM city
Tìm Trong Vài Cột đây, tham khảo nha!

Hàm dưới đây là ví dụ tìm chuỗi trong cột B & cột C mà thôi không tuỳ thuộc vô vùng tìm là bao la cỡ nào!

:dzo:
 
Sửa lần cuối:
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
HongViet nói:
Có cách này tôi mới ngẫm ra thôi, chưa thử:
1. Xoá/vô hiệu hoá nút lệnh FIND trên thanh menu đi!
2. Viết 1 Macro có câu lệnh Find ~ ô (Range) mà bạn gởi đến (cho phép)!
Cách này không hay vì nó disable chức năng Find của Excel trong khi người dùng chỉ muốn che một vùng dữ liệu nào đó mà thôi. Về kỹ thuật thì để thực hiện cách này cũng khá phức tạp, mỗi khi active workbook hay worksheet thì nó xóa sub-menu Find, xóa button Find, gán tổ hợp Ctrl + F thành 1 lệnh khác... nhưng cũng chỉ che mắt người không biết VBA mà thôi. Mỗi khi deactive thì trả lại trạng thái cũ ... oải.
Với Excel, ta có thể vận dụng rất nhiều cách khác nhau để bảo vệ dữ liệu hay hạn chế thông tin. Trong trường hợp này, ý tưởng của tôi là đặt dữ liệu vào 1 vùng nào đó rồi che vùng này lại (bằng các thuộc tính Hidden, Locked của cả Cells, Rows và Columns) rồi protect sheet. Như vậy lệnh Find sẽ không tìm ra cho dù xác lập Lookin là Value.
Nói chung, Excel vẫn là... vô cùng, nếu đưa ra 1 yêu cầu nào đó, sẽ có nhiều cách giải quyết từ "chính thống" cho tới mẹo vặt.
 
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
SA_DQ nói:
Hàm dưới đây là ví dụ tìm chuỗi trong cột B & cột C mà thôi không tuỳ thuộc vô vùng tìm là bao la cỡ nào!

Function VieFIND(VungTim As Object, StrTim As Variant) As String
Dim rRange As Range
Dim Chu As String, ii As Byte

For Each rRange In VungTim
ii = 1 + ii
If rRange.Value = StrTim Then Exit For
Next rRange
Chu = Chr(64 + rRange.Column)
If Chu > "A" And Chu < "D" Then
VieFIND = Chu & rRange.Row
' VieFIND = Chu & rRange.Row & Str(ii)
Else
VieFIND = "CHI DUOC TIM TRONG VUNG CHO FEP!"
End If

End Function
:dzo:

Chào Anh,
Em xin góp ý:
Nên khai báo vùng tìm rngVungTim as Range, StrTim là sTim as String
Trước khi thực hiện anh nên kiểm tra xem biến rngVungTim đưa vào có phải là Range hay không? Có phải là nhiều Range hay không?...vv.
Sau đó mới tiến hành tìm và trả về kết quả cho hàm.
Trong trường hợp có lỗi thì kết quả trả về sẽ là gì?
Thân,

Lê Văn Duyệt.
PS: Anh ơi hôm này thịt cầy. . . ha ha ha
 
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Ơ,
--
Hình như anh Levanduyet cắt mất đoạn chương trình của anh SA_DQ rồi thì phải!
Em đọc qua thấy anh Duyệt góp ý như vầy vẫn chưa đầy đủ nên muốn có ý kiến thêm:
1. Đây là chủ đề "Co (chắc là "cho" chứ không phải "co" tôi hỏi về việc Find dữ liệu bằng Ctrl + F" nhưng các bài thảo luận hình như đi xa với ý đồ của người đặt vấn đề. "Find dữ liệu bằng Ctrl + F" ở đây được hiểu là thực hiện lệnh tìm kiếm trong Excel, lệnh tương đương: Edit/Find. Yêu cầu là "chỉ tìm kiếm ở những cột, hàng hoặc cell cho phép, còn những cái khác thì không". Nếu chủ đề này được đưa vào chuyên mục "Excel và VBA" thì chẳng có gì để nói, nhưng đưa vào chuyên mục "Excel và kế toán" thì điều đáng bàn ở đây là cần giải đáp cho người làm kế toán chứ không phải người biết VBA. Cách giải quyết vấn đề vì thế mà khác nhau, thậm chí làm cho
khongnghe_khongbiet nói:
Vấn đề phức tạp hen .....
Theo em, ý kiến của linhtinh:
linhtinh nói:
Khi bác muốn tìm số trong vùng nào thì chọn vùng đó rồi ctrl+F vậy thôi ah.
có vẻ là câu trả lời thích hợp với thắc mắc của khongnghe_khongbiet, tuy nhiên cần bổ sung thêm ý nghĩa của một số tuỳ chọn khác trong mục Options, như: Within, Search, Lookin, Format, Match Case...
2. Đoạn chương trình tìm kiếm VieFIND của anh SA_DQ, theo em, ngoài việc "tìm chuỗi trong cột B & cột C mà thôi không tuỳ thuộc vô vùng tìm là bao la cỡ nào" chương trình còn chưa tối ưu về tốc độ. Nếu tìm trong "bảng dữ liệu rất nhiều số" của khongnghe_khongbiet em đoán thể nào bác khongnghe_khongbiet cũng "không nghe - không biết" luôn(!).
Trong MSE VBA, đối tượng Range có phương thức Find. Đây là phương thức tìm kiếm trong vùng dữ liệu, cú pháp:
Range(<Vùng muốn tìm>).Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Nếu sử dụng phương thức này thì thay thế cả đoạn thủ tục dài dòng của SA_DQ, tốc độ được cải tiến hơn hẳn vì hàm đã được biên dịch.
Đôi điều góp ý!
 
M

mysterious_girl

Guest
Đào Việt Cường nói:
...Đây là chủ đề "Co (chắc là "cho" chứ không phải "co" tôi hỏi về việc Find dữ liệu bằng Ctrl + F"...
Hì, anh bắt lỗi người khác,bây giờ em bắt lỗi anh đây!:biggrin:
Đào Việt Cường nói:
Hình như anh Levanduyet cắt mất đoạn chương trình của anh SA_DQ rồi thì phải!

Không phải anh Duyệt cắt đâu anh ạ. Anh để ý xem, Bài A.Duyệt post lúc 9:05 AM, còn cuối bài của anh SA_DQ có ghi "thay đổi nội dung bởi: SA_DQ, ngày Hôm nay lúc 09:22 AM." ---> nghĩa là anh SA_DQ đã xem qua bài góp ý của A. Duyệt và tạm thời cắt để nâng cấp.
 
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
Em bị oan,

mysterious_girl nói:
Không phải anh Duyệt cắt đâu anh ạ. Anh để ý xem, Bài A.Duyệt post lúc 9:05 AM, còn cuối bài của anh SA_DQ có ghi "thay đổi nội dung bởi: SA_DQ, ngày Hôm nay lúc 09:22 AM." ---> nghĩa là anh SA_DQ đã xem qua bài góp ý của A. Duyệt và tạm thời cắt để nâng cấp.
Hì hì hì, đúng là levanduyet bị oan... ai đời lại đi xóa bài của Bác SA_DQ...hu hu hu...bị oan... bắt đền đó.
Thân,
Lê Văn Duyệt
 
M

mysterious_girl

Guest
levanduyet nói:
Hì hì hì, đúng là levanduyet bị oan... ai đời lại đi xóa bài của Bác SA_DQ...hu hu hu...bị oan... bắt đền đó.
Thân,
Lê Văn Duyệt

Anh cứ bắt đền NSS.:lol:
 
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Ơ:quiet:,
------
levanduyet nói:
đúng là levanduyet bị oan... ai đời lại đi xóa bài của Bác SA_DQ...hu hu hu...bị oan... bắt đền đó.
mysterious_girl nói:
Anh cứ bắt đền NSS.
lol.gif
Em chỉ phỏng đoán thôi mà:
Đào Việt Cường nói:
Hình như anh Levanduyet cắt mất đoạn chương trình của anh SA_DQ rồi thì phải!
đọc kỹ đi Hạt Bí! :deal: . Phỏng đoán thì sao lại bắt cái đền chứ!
Dear SA_DQ,
-------------
Chương trình của bác hay thật, nhưng mà em chỉ thấy Zô!... Zô!... Zô!... thôi. Nhanh lên bác, cổ em dài rồi đó!
 
Sửa lần cuối:

Xem nhiều

Webketoan Zalo OA