Thursday, July 12, 2007

Tìm kiếm và thay thế nhiều file văn bản

Tổng quan: Word không hỗ trợ bạn tìm và thay thế cùng lúc nhiều văn bản. Sử dụng macro và giải pháp ở dưới đây sẽ giúp bạn tìm và thay thế chính xác những gì bạn cần. (Thủ thuật này sử dụng được ở Microsoft Word 97, Word 2000, Word 2002, và Word 2003.)

Bạn có thể thực hiện thay thế cho nhiều văn bản. Bạn muốn thay thế một cụm từ nhưng ở nhiều văn bản khác nhau. Ví dụ, bạn muốn thay đổi tên công ty ở mỗi văn bản. Thông thường, bạn mở từng file văn bản ra, thay thế sau đó lưu văn bản lại. Nhưng thử tưởng tượng bạn có khoảng 100 file như thế thì việc làm như thế sẽ vô cùng nhàm chán.
Vậy phải làm thế nào? hãy nghĩ đến macro. Bạn viết một macro sẽ làm công việc đó cho bạn. Macro làm đúng các công việc như bạn làm, chỉ khác là đây là tự động. Công việc của bạn sẽ trở nên đơn giản và nhanh chóng.
Bạn hãy tạo một macro với các dòng lệnh như ở dưới đây:



Code:




-----------------------------------------




Public Sub MassReplace()
With Application.FileSearch
.LookIn = "C:\"             ' nơi tìm kiếm
.SearchSubFolders = True    ' cho phép tìm cả thư mục con
.FileName = "*.doc"         ' loại file cần tìm

' nếu muốn tìm ở nhiều loại file, sử dụng code sau
If .Execute() > 0 Then
' để hiển thị bao nhiêu file mà macro này sẽ tìm,
' uncomment dòng dưới
'            MsgBox "Found " & .FoundFiles.Count & " file(s)."

' với mỗi file bạn tìm, chạy vòng lặp sau
For i = 1 To .FoundFiles.Count
' Mở file dựa trên vị trí được chỉ ra
Documents.Open FileName:=.FoundFiles(i)

' Tìm và thay thế tên công ty
selection.Find.ClearFormatting
selection.Find.Replacement.ClearFormatting
With selection.Find
.Text = "OldCompanyName"
.MatchCase = True
.Replacement.Text = "NewCompanyName"
End With
selection.Find.Execute Replace:=wdReplaceAll

' thay thế địa chỉ
With selection.Find
.Text = "OldStreetAddress"
.Replacement.Text = "NewStreetAddress"
End With



selection.Find.Execute Replace:=wdReplaceAll

' thay thế City, State, and Zip code
With selection.Find
.Text = "OldCityStateAndZip"
.Replacement.Text = "NewCityStateAndZip"
End With
selection.Find.Execute Replace:=wdReplaceAll

' lưu lại và đóng văn bản hiện thời
ActiveDocument.Close wdSaveChanges
Next i
Else
' Nếu không tìm thấy bất kỳ file nào
' với đuôi .doc
MsgBox "No files found."
End If
End With
End Sub
-----------------------------------------


Macro này rất là hữu ích, nhưng nó không chỉ thay thế tên công ty mà cả địa chỉ công ty. Bạn chỉ cần thay đổi vị trí tìm kiếm.
Bạn có thể tham khảo thêm ở các nguồn dưới đây:
• WordFisher (
http://www.wordfisher.com)
• Word Search and Replace (
http://www.funduc.com/word_sr.htm)
• InfoRapid Search & Replace (
http://www.inforapid.com/html/searchreplace.htm)
• MegaReplacer (
http://www.editorium.com/14843.htm)

Nguồn dịch:
http://wordtips.vitalnews.com/Pages/...d_Replace.html

No comments:

Post a Comment