Tìm kiếm tất cả (Microsoft Excel)
Jack tự hỏi làm thế nào anh ta có thể thực hiện tìm kiếm một từ hoặc cụm từ nhất định và trong một bước, đánh dấu tất cả các ô chứa nó để anh ta có thể cắt hoặc sao chép chúng và dán chúng vào nơi khác.
Chọn các ô chứa văn bản bạn muốn sử dụng khá dễ dàng; bạn có thể sử dụng tính năng Tìm và Thay thế tiêu chuẩn để thực hiện. Làm theo các bước sau:
-
Nhấn Ctrl + F. Excel sẽ hiển thị tab Tìm của hộp thoại Tìm và Thay thế.
-
Mở rộng hộp thoại bằng cách nhấp vào nút Tùy chọn. (Xem Hình 1.)
-
Trong hộp Tìm gì, hãy nhập văn bản bạn muốn tìm.
-
Sử dụng các điều khiển trong hộp thoại để giới hạn các kết quả phù hợp, như mong muốn.
-
Nhấp vào Tìm tất cả. Hộp thoại được mở rộng để hiển thị tất cả các kết quả phù hợp đã được định vị.
-
Nhấn Ctrl + A. Thao tác này sẽ chọn tất cả các ô đã được tìm thấy.
-
Bấm Đóng để loại bỏ hộp thoại.
Đó là nó. Miễn là bạn không nhấp vào Khớp Toàn bộ Nội dung Ô ở bước 4, Excel sẽ chọn tất cả các ô có chứa văn bản bạn đã chỉ định trong bước 3. Tại thời điểm đó, bạn có thể áp dụng định dạng cho các ô, nếu muốn.
Tất nhiên, bạn có thể sử dụng định dạng có điều kiện để định dạng động các ô chứa văn bản bạn muốn đánh dấu. Tất cả những gì bạn cần làm là thiết lập một điều kiện sử dụng công thức kiểm tra sự hiện diện của văn bản bạn muốn. Tất nhiên, thao tác này sẽ không chọn tất cả các ô có chứa văn bản, nhưng nó sẽ đánh dấu chúng để bạn có thể chọn chúng ở đâu.
Bạn cũng có thể sử dụng macro để chọn tất cả các ô chứa văn bản mong muốn. Sau đây là một cái khá đơn giản để hoàn thành nhiệm vụ:
Sub selCellbasedonValue() Dim c As Object Dim u As Range Dim v As Range Dim sInpt As String Set u = ActiveSheet.UsedRange sInpt = InputBox("Enter the search text") If sInpt > "" Then For Each c In u If Instr(LCase(sInpt),LCase(c.Value)) > 0 Then If v Is Nothing Then Set v = Range(c.Address) Else Set v = Union(v, Range(c.Address)) End If End If Next v.Select Set v = Nothing End If Set u = Nothing End Sub
Tuy nhiên, có một vấn đề với việc chọn các ô mà bạn cần nhận ra — nếu các ô không liền nhau, bạn không thể cắt hoặc sao chép các ô. Nếu cố gắng, bạn sẽ nhận được thông báo lỗi cho biết rằng lệnh không thể được sử dụng trên nhiều lựa chọn. Cách dễ nhất để sao chép nội dung ô sang một vị trí khác là sử dụng lại macro:
Sub CopyFinds() Dim sSrch As String Dim sFirst As String Dim rPaste As Range Dim i As Integer Dim iLeftC As Integer Dim lTopR As Long Dim c As Object If Selection.Cells.Count = 1 Then MsgBox "Select the range to be searched." Exit Sub End If 'Specify search string sSrch = InputBox(Prompt:="Enter the search text") ' Set the paste address On Error Resume Next Set rPaste = Application.InputBox(Prompt:="Enter the upper-left " & _ "cell address for the paste range", Type:=8) On Error GoTo 0 ' Exit if canceled If TypeName(rPaste) <> "Range" Then Exit Sub ' Upper left cell to be used Set rPaste = rPaste.Range("A1") 'Set where paste will start and headings Application.ScreenUpdating = False lTopR = rPaste.Row iLeftC = rPaste.Column Cells(lTopR, iLeftC) = "Address" Cells(lTopR, iLeftC + 1) = "Cell Value" lTopR = lTopR + 1 'Start copying cell values With Selection Set c = .Find(What:=sSrch, LookAt:=xlPart, MatchCase:=True) If Not c Is Nothing Then sFirst = c.Address Do Cells(lTopR, iLeftC) = c.Address Cells(lTopR, iLeftC + 1) = c.Value Set c = .FindNext(c) lTopR = lTopR + 1 Loop While Not c Is Nothing And c.Address <> sFirst End If End With Application.ScreenUpdating = True Cells(rPaste.Row, rPaste.Column).Select End Sub
Khi bạn chọn một dải ô và chạy macro này, bạn sẽ được yêu cầu chỉ định những gì bạn đang tìm kiếm (trường hợp quan trọng) và địa chỉ nơi bạn muốn sao chép nó. Sau đó, macro sẽ tìm tất cả các ô có chứa giá trị đó và sao chép cả địa chỉ của chúng và giá trị ô vào địa chỉ bắt đầu mà bạn đã chỉ định. Macro không thực hiện nhiều kiểm tra lỗi; nó sẽ ghi đè thông tin nếu bạn chỉ định một địa chỉ đích đã có thông tin trong đó. Ngoài ra, nếu bạn chỉ định địa chỉ đích nằm trong phạm vi bạn đang tìm kiếm, macro có thể chạy vô hạn. Bạn chắc chắn nên chỉ định một mục tiêu nằm ngoài phạm vi đang được tìm kiếm.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (8963) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: