Đánh giá lequocthai.com:
Như tên gọi đã chỉ ra, nhiệm vụ của hàm Replace là thay thế một chuỗi ký tự trong một chuỗi bằng một chuỗi ký tự mới.
Trong Excel VBA có hai hàm có thể dùng để thực hiện các thao tác thay thế chuỗi. Bài viết này sẽ giới thiệu và đưa ra ví dụ cho cả hai hàm.

1. Hàm VBA Replace
Như đã đề cập, hàm Replace chỉ đơn giản là thay thế một chuỗi ký tự trong một chuỗi bằng một chuỗi ký tự khác đã định sẵn.
Cú pháp cơ bản của hàm Replace trong VBA như sau:
=Replace( Source_string, Old_string, Replacement_string, [start, [count, [compare]]] )
Trong đó:
- Source_string: chuỗi nguồn mà bạn muốn thay thế.
- Old_string: chuỗi ký tự (hoặc chuỗi) cần thay thế.
- Replacement_string: chuỗi ký tự sẽ thay thế cho Old_string.
- start: vị trí (số nguyên) trong Source_string từ đó bắt đầu tìm kiếm. Đây là tham số tùy chọn; nếu bỏ qua, tìm kiếm sẽ bắt đầu từ vị trí 1.
- count: số lần xuất hiện của Old_string cần thay thế. Cũng là tham số tùy chọn; nếu không chỉ định, tất cả các lần xuất hiện sẽ được thay thế.
- compare: tham số tùy chọn xác định kiểu so sánh khi hàm
Replacetìm kiếm Old_string trong Source_string. Trong đa số trường hợp, bạn có thể bỏ qua. Đối với các trường hợp nâng cao, giá trị của tham số này có thể là một trong các hằng số sau:Giá trị Tham số Mô tả vbBinaryCompare Sử dụng so sánh nhị phân. vbTextCompare Sử dụng so sánh chuỗi không phân biệt chữ hoa/thường. vbDatabaseCompare Sử dụng cài đặt ngôn ngữ của cơ sở dữ liệu để so sánh.
Ví dụ về hàm VBA Replace
Ví dụ 1:
Replace("Excel Tips", "Tips", "Trick")
Kết quả trả về: Excel Trick.
Ví dụ 2:
Replace("Excel VBA", "Tips", "Trick")
Kết quả trả về: Excel VBA vì chuỗi Tips không tồn tại trong Source_string, nên hàm trả về chuỗi gốc.
Ví dụ 3:
Replace("alligator", "a", "z", 2 )
Kết quả: alligztor. Hàm bắt đầu tìm ký tự a sau vị trí thứ hai và thay thế bằng z.
Ví dụ 4:
Replace("alligator", "a", "z", 1, 1)
Kết quả: zlligator. Chỉ thay thế một lần xuất hiện đầu tiên của a bằng z.
Ví dụ 5:
Replace("Alligator", "a", "z", 1,, vbTextCompare)
Với vbTextCompare, hàm bỏ qua sự khác biệt giữa chữ hoa và chữ thường, vì vậy kết quả là zalligztor.
2. Hàm SUBSTITUTE trong Excel VBA
Hàm SUBSTITUTE trong Excel VBA rất giống với hàm Replace. Cú pháp của hai hàm gần như giống hệt nhau và kết quả trả về cũng tương đương.
Điều quan trọng cần lưu ý khi sử dụng hàm SUBSTITUTE là hàm này không có sẵn trong danh sách các hàm VBA tiêu chuẩn; nó nằm trong WorksheetFunction. Cú pháp của hàm Substitute như sau:
WorksheetFunction.Substitute("Source_string", "Old_string", "Replacement_string", Instance_num)
- Source_string: chuỗi nguồn.
- Old_string: chuỗi cần thay thế.
- Replacement_string: chuỗi thay thế.
- Instance_num: số nguyên chỉ định lần xuất hiện nào của Old_string sẽ được thay thế. Đây là tham số tùy chọn; nếu bỏ qua, tất cả các lần xuất hiện sẽ được thay thế.
Ví dụ về hàm VBA SUBSTITUTE
Ví dụ 1:
Substitute("Excel Tips", "Tips", "Trick")
Kết quả: Excel Trick.
Ví dụ 2:
Substitute("H:\\SomeFolder\\AnotherFolder\\SomeFile.txt", "\\", "*", 3)
Kết quả: H:\SomeFolder\AnotherFolderSomeFile.txt. Chỉ lần xuất hiện thứ ba của ký tự \ được thay bằng dấu .
Macro Excel sử dụng các hàm trên
Dưới đây là một macro Excel minh họa việc sử dụng cả hai hàm Replace và Substitute. Macro này đơn giản và dễ hiểu.

Sub ReplaceFunctions()
var_replace = Replace("Excel Tip", "Tip", "Trick")
var_substitute = WorksheetFunction.Substitute("Excel Trick", "c", "z", 2)
MsgBox "Replace_Result- " & var_replace & vbNewLine & "Substitute_Result- " & var_substitute
End Sub
Như vậy, đây là một số hàm thay thế chuỗi trong VBA mà bạn có thể áp dụng trong macro Excel.







