Nếu bạn cần làm loại việc này thường xuyên, thì giải pháp tốt nhất là sử dụng macro. Bí quyết là cách bạn chỉ định, trong macro, chính xác những gì bạn muốn thay thế. Một cách là nhồi thông tin vào một mảng, như trong ví dụ sau:

Sub RemoveTerms1()

Dim vTerm As Variant     Dim vArray As Variant

For Each vTerm in vArray         Selection.Replace What:=vTerm, _           Replacement:="", LookAt:=xlPart     Next vTerm End Sub

Các thuật ngữ đang được tìm kiếm được đặt trong mảng vArray, và sau đó từng thành viên của mảng (từng thuật ngữ) được bước qua. Phương thức Replace được sử dụng với đối tượng Selection để thực hiện các thay thế thực tế. Macro không loại bỏ các ô; nó chỉ đơn giản là loại bỏ bất kỳ văn bản nào phù hợp với thuật ngữ. Khi thay thế, tìm kiếm không phân biệt chữ hoa chữ thường để “google” khớp với “Google”.

Vì đối tượng Lựa chọn được sử dụng, điều quan trọng là đảm bảo bạn chọn danh sách bạn muốn xử lý trước khi thực sự chạy macro.

Nếu bạn không, thì không có gì được thay thế.

Nếu muốn, bạn có thể tạo macro kéo các điều khoản từ một loạt các ô trong sổ làm việc.

Sub RemoveTerms2()

Dim c As Range     Dim rngSource As Range     Dim vTerm As Variant     Dim arrTerms As Variant     Dim i As Integer

i = -1     arrTerms = Array()

For Each c In Range("D1:D9").Cells         If Trim(c.Value) > "" Then             i = i + 1             ReDim Preserve arrTerms(i)

arrTerms(i) = Trim(c.Value)

End If     Next c

On Error Resume Next     Set rngSource = Application.InputBox( _                     Prompt:="Please select Range", _                     Title:="Removing Cells Containing Terms", _                     Default:=ActiveSheet.UsedRange.Address, Type:=8)

On Error GoTo 0     If rngSource Is Nothing Then         MsgBox ("You didn't specify a range to process")

Else         For Each vTerm in arrTerms             rngSource.Replace What:=vTerm, _               Replacement:="", LookAt:=xlWhole         Next vTerm     End If End Sub

Macro này kéo các cụm từ tìm kiếm từ phạm vi D1: D9 và sau đó nhắc bạn chọn phạm vi ô bạn muốn xử lý. Nó sử dụng cùng một phương thức Replace đã được sử dụng trong macro trước đó, ngoại trừ nó chỉ định tham số LookAt là xlWhole. Điều này có nghĩa là cụm từ tìm kiếm cần phải khớp với toàn bộ ô để được xóa. Tuy nhiên, các điều khoản vẫn được coi là không phân biệt chữ hoa chữ thường.

Lưu ý rằng các ví dụ cho đến nay không thực sự xóa bất kỳ ô nào; họ chỉ cần xóa nội dung của các ô. Trong nhiều trường hợp, đây chính xác là những gì bạn muốn vì bạn không muốn phá vỡ bố cục của trang tính thực tế. Nếu bạn thực sự muốn xóa các ô, thì bạn sẽ không sử dụng phương pháp Thay thế. Thay vào đó, bạn có thể bật so sánh văn bản mở rộng và sử dụng toán tử Thích để xem có khớp hay không.

Option Compare Text

Sub RemoveTerms3()

Dim c As Range     Dim rngSource As Range     Dim vTerm As Variant     Dim arrTerms As Variant     Dim i As Integer     Dim sLook As String

i = -1     arrTerms = Array()

For Each c In Range("D1:D9").Cells         If Trim(c.Value) > "" Then             i = i + 1             ReDim Preserve arrTerms(i)

arrTerms(i) = Trim(c.Value)

End If     Next c

On Error Resume Next     Set rngSource = Application.InputBox( _                     Prompt:="Please select Range", _                     Title:="Removing Cells Containing Terms", _                     Default:=ActiveSheet.UsedRange.Address, Type:=8)

On Error GoTo 0     If rngSource Is Nothing Then         MsgBox ("You didn't specify a range to process")

Else         For Each vTerm in arrTerms             sLook = "" & vTerm & ""

For Each c In rngSource                 If c.Value Like sLook Then c.Delete             Next         Next vTerm     End If End Sub

Lưu ý rằng các cụm từ tìm kiếm vẫn được lấy từ phạm vi D1: D9 và bạn vẫn được hỏi về phạm vi bạn muốn xử lý. Tuy nhiên, từ đó, quá trình sẽ khác: Macro kiểm tra từng ô và nếu có một phần khớp, thì ô đó sẽ bị xóa.

Để biến thể này trên macro hoạt động bình thường, bạn sẽ cần bao gồm dòng Văn bản So sánh Tùy chọn bên ngoài chính quy trình.

Điều này hướng dẫn VBA bật các từ khóa (chẳng hạn như Thích) cho phép so sánh văn bản.

_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 (13373) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.