Các sinh viên của Dorothy đang tùy chỉnh một sổ làm việc mô phỏng sổ séc, thay thế tên mặc định bằng tên riêng của họ. Ví dụ: cô ấy muốn họ tìm kiếm “Jason Anderson” và thay thế tên bằng “Sue Smith”.

Có 22 lần xuất hiện của “Jason Anderson” trong các hộp văn bản trong suốt tám tab trang tính và một số lần xuất hiện khác trên chính trang tính.

Dorothy tự hỏi làm thế nào cô ấy có thể Tìm và Thay thế tất cả các lần xuất hiện trang tính và tất cả các lần xuất hiện nhận xét cùng một lúc.

Không có cách nào để làm điều này mà không sử dụng macro. Macro sẽ cần phải xem qua từng ô trong sổ làm việc, từng nhận xét và từng hộp văn bản để xem có cần thực hiện các thay đổi hay không. Sau đây là một ví dụ về cách điều này có thể được thực hiện:

Sub ReplaceNames()

Dim sDefaultName As String     Dim sNewName As String     Dim sht As Worksheet     Dim cmt As Comment     Dim wks As Worksheet     Dim sCmt As String     Dim shp As Shape

sDefaultName = "Jason Anderson"

sNewName = InputBox("Enter your first and last name.", _       "Name Replacement")



' Replace cell text     For Each sht In ActiveWorkbook.Worksheets         sht.Cells.Replace what:=sDefaultName, _           Replacement:=sNewName, LookAt:=xlPart, _           SearchOrder:=xlByRows, MatchCase:=False, _           SearchFormat:=False, ReplaceFormat:=False     Next sht

' Replace comment text     For Each wks In ActiveWorkbook.Worksheets         For Each cmt In wks.Comments             sCmt = cmt.Text             If InStr(sCmt, sDefaultName) <> 0 Then                 sCmt = Application.WorksheetFunction. _                   Substitute(sCmt, sDefaultName, sNewName)

cmt.Text Text:=sCmt             End If         Next cmt     Next wks     Set wks = Nothing     Set cmt = Nothing

' Replace text box text     On Error Resume Next     For Each wks In ActiveSheet.Parent.Worksheets         For Each shp In wks.Shapes             With shp.TextFrame.Characters                 .Text = Application.WorksheetFunction.Substitute( _                   .Text, sDefaultName, sNewName)

End With         Next shp     Next wks End Sub

Macro nhắc người dùng nhập tên mới, sau đó tìm kiếm các ô, nhận xét và hộp văn bản để xem có bất kỳ lần xuất hiện nào của tên mặc định (“Jason Anderson”) hay không. Nếu vậy, thay thế thích hợp được thực hiện.

Nếu bạn không muốn sử dụng macro để thực hiện tìm kiếm, có lẽ việc cấu trúc lại sổ làm việc sẽ hữu ích. Ví dụ: bạn có thể tạo “trang tính nhập dữ liệu” trong đó thông tin phổ biến — chẳng hạn như tên của người — được nhập. Trong các trang tính khác, tên từ trang tính nhập dữ liệu được tham chiếu bằng công thức. Do đó, một thay đổi trong trang tính nhập dữ liệu và tên được thay đổi trong tất cả các trang tính khác.

Sử dụng phương pháp này cũng có thể hiệu quả với các nhận xét. Bạn có thể chọn nhận xét hoặc hình dạng và trong thanh Công thức, hãy nhập công thức tham chiếu như sau:

=MyName

Điều này giả định rằng tên của người dùng, trên trang tính nhập dữ liệu, đã được liên kết với phạm vi tên MyName. Nếu cần có thêm thông tin trong nhận xét hoặc hình dạng, thì bạn có thể tạo văn bản đó trong một ô trên trang tính nhập dữ liệu và sau đó gán nội dung của ô đó cho nhận xét hoặc hình dạng, giống như đã lưu ý đối với phạm vi tên MyName.

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