Mục lục
Nếu bạn đang tìm kiếm một số cách dễ dàng nhất để tìm chuỗi con bằng VBA, thì bạn đang ở đúng nơi. Sau khi xem qua bài viết này, bạn sẽ có thể tìm thấy vị trí của một chuỗi con hoặc trích xuất dữ liệu bằng cách sử dụng chuỗi con này hoặc thay đổi định dạng của một chuỗi con một cách dễ dàng. Hãy cùng vào bài viết.
Tải Workbook xuống
Nội dung mẫu
9 cách tìm chuỗi con bằng VBA
Ở đây, tôi có những điều sau bảng dữ liệu mà tôi sẽ chỉ ra các cách tìm chuỗi con trong một chuỗi bằng VBA. Tôi cũng sẽ cố gắng trình bày các cách tìm chuỗi con trong một chuỗi ngẫu nhiên.
Tôi đã thực hiện nhiệm vụ này bằng phiên bản Microsoft Excel 365 , bạn có thể sử dụng bất kỳ phiên bản nào khác tùy theo sự thuận tiện của mình.
Phương pháp-1: Tìm chuỗi con trong một chuỗi bằng VBA
Nếu bạn muốn tìm chuỗi con mong muốn trong một chuỗi bằng VBA, bạn có thể sử dụng hàm InStr trong mã VBA.
Bước-01 :
➤Chuyển đến Tab Nhà phát triển>> Visual Basic Tùy chọn
Sau đó, Trình chỉnh sửa Visual Basic sẽ mở ra.
➤Chuyển đến Chèn Tab>> Mô-đun Tùy chọn
Sau đó, Mô-đun sẽ được tạo.
Bước-02 :
➤Viết đoạn mã sau
5088
Đây, InStr(1, “ Tôi nghĩ do đó tôi là”, “nghĩ”) sẽ trả về vị trí của chuỗi con của một chuỗi. 1 làvị trí bắt đầu, “ I think so I am” là chuỗi mà bạn sẽ tìm thấy chuỗi con mong muốn và “think” là chuỗi con bạn muốn tìm. Theo mặc định, nó phân biệt chữ hoa chữ thường, vì vậy hãy cẩn thận với trường hợp của chuỗi con mà bạn muốn tìm kiếm.
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được Hộp thông báo sau chứa vị trí của chuỗi con “think” .
Phương pháp 2: Tìm chuỗi con không phân biệt chữ hoa chữ thường trong một chuỗi
Nếu bạn muốn tìm chuỗi con mong muốn trong một chuỗi bất kể chữ hoa chữ thường bằng cách sử dụng VBA, hãy làm theo hướng dẫn sau phương pháp.
Bước-01 :
➤Thực hiện theo Bước-01 của Phương pháp-1
Function FindSubstring(value As Range) As Integer Dim Pos As Integer Pos = InStr(1, value, "@") FindSubstring = Pos End Function
Ở đây, vbTextCompare được sử dụng để tìm chuỗi con phân biệt chữ hoa chữ thường.
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được Hộp thông báo sau chứa vị trí của chuỗi con “think” .
Bạn có thể thực hiện tương tự bằng cách sử dụng mã sau.
6983
Ở đây, Văn bản so sánh tùy chọn sẽ tìm chuỗi con phân biệt chữ hoa chữ thường.
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ sẽ nhận được Hộp thông báo sau chứa vị trí của chuỗi con “think” .
Phương pháp-3: Sử dụng hàm InstrRev trong VBA
Sau đây tôi sẽ trình bày cách tìm một chuỗi con từ cuối mộtchuỗi.
Bước-01 :
➤Thực hiện theo Bước-01 của Phương thức-1
2330
InStrRev sẽ tìm chuỗi con từ bên phải thay vì bên trái.
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được Hộp thông báo sau chứa vị trí của chuỗi con “I” thứ hai từ chuỗi con bên phải.
Cách-4: Tìm vị trí của Chuỗi con trong Chuỗi trong Phạm vi dữ liệu
Nếu bạn muốn tìm ký tự đặc biệt “@” trong Id Email , sau đó làm theo phương pháp này. Tôi đã thêm vào đây Cột Vị trí cho mục đích này.
Bước-01 :
➤Làm theo Bước-01 của Phương thức-1
9052
Nó sẽ tạo một hàm có tên FindSubstring (bạn có thể sử dụng bất kỳ tên nào khác)
giá trị là tham chiếu ô chứa chuỗi và nó được khai báo là Phạm vi .
Bước -02 :
➤Chọn đầu ra Ô E5
➤Nhập hàm sau (được tạo bởi VBA )
=FindSubstring(D5)
D5 là ô chứa chuỗi.
➤Nhấn ENTER
➤Kéo xuống Công cụ Fill Handle
Kết quả :
Sau đó, bạn sẽ nhận được vị trí của ký tự đặc biệt “ @” trong Id Email .
Bài đọc tương tự:
- Cách tìmChuỗi trong ô bằng VBA trong Excel (2 phương pháp)
- FindNext sử dụng VBA trong Excel (2 ví dụ)
- Cách tìm chuỗi bằng VBA trong Excel (8 ví dụ)
- VBA Tìm hàng cuối cùng trong Excel (5 cách)
Phương pháp-5: Kiểm tra một chuỗi con nhất định trong một chuỗi trong phạm vi dữ liệu
Giả sử, bạn muốn viết Đạt hoặc Không tương ứng với tên của học sinh tùy thuộc vào cột Kết quả trong đó Đạt hoặc Không đạt được viết trong dấu ngoặc. Để tìm chuỗi con này trong cột Kết quả và ghi nó vào cột Đạt hoặc không đạt hãy làm theo phương pháp này.
Bước-01 :
➤Thực hiện theo Bước-01 của Phương pháp-1
7366
Ở đây, phạm vi ô là C5:C10 là cột Kết quả
InStr(cell.value, “Pass”) > 0 là điều kiện trong đó số lớn hơn 0 (khi ô chứa “Đạt” ) thì dòng sau sẽ tiếp tục và cho kết quả ở ô liền kề là Đạt .
Nếu điều kiện trở thành sai nghĩa là một ô không chứa bất kỳ ô nào “Đạt” thì dòng bên dưới Khác sẽ thực thi và đưa ra giá trị đầu ra trong ô ô liền kề là Không thành công .
Vòng lặp này sẽ tiếp tục cho từng ô.
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được các đầu ra sau trong phần Đạt hoặc không đạt column.
Phương pháp-6: Kiểm tra một chuỗi con nhất định trong một chuỗi và trích xuất dữ liệu
Tôi sẽ chỉ cách tìm các sinh viên có tên Michael trong cột Tên sinh viên và trích xuất dữ liệu tương ứng của họ bằng cách sử dụng VBA theo phương pháp này.
Bước-01 :
➤Thực hiện theo Bước-01 của Phương pháp-1
8674
Ở đây, tôi đã sử dụng B100 là Phạm vi trang tính đang hoạt động nhưng bạn có thể sử dụng bất kỳ phạm vi nào tùy theo mục đích sử dụng của mình.
InStr(1, Range("B" & i), "Michael") > 0
là điều kiện để kiểm tra xem ô có nằm trong cột B chứa Michael
Range("E" & icount & ":G" & icount)
là phạm vi mà bạn muốn dữ liệu đầu ra của mình và Range("B" & i & ":D" & i).value
sẽ cung cấp các giá trị từ các cột B đến D .
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được dữ liệu trích xuất sau cho các sinh viên có tên Michael .
Phương pháp-7: Tìm chuỗi con cho Word
Nếu bạn muốn tìm chuỗi con dưới dạng một từ, hãy fol hạ thấp phương pháp này.
Bước-01 :
➤Thực hiện theo Bước-01 của Phương pháp-1
4645
Nó sẽ kiểm tra xem chuỗi chứa có phải là không và sau đó vị trí của nó sẽ được đưa ra
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được hộp thông báo sau hiển thị từ được tìm thấy ở vị trí:6 (vị trí của is ).
Bạn có thể kiểm trara mã này cho một từ không có trong chuỗi.
➤Nhập mã sau
2012
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được hộp thông báo sau hiển thị không tìm thấy từ .
Cách-8: Sử dụng hàm Instr và LEFT
Sau đây, tôi sẽ giải thích cách tìm vị trí của một chuỗi con trong một chuỗi và trích xuất các văn bản trước chuỗi con này bằng cách sử dụng VBA và hàm LEFT .
Bước 01 :
➤Thực hiện theo Bước 01 của Phương thức-1
9033
j = InStr(txt, "is")
là vị trí của chuỗi con là và Left(txt, j - 1)
sẽ trích xuất các chuỗi con trước là .
➤Nhấn F5
Kết quả :
Sau đó, bạn sẽ nhận được hộp thông báo sau hiển thị Đây (chuỗi con trước is ).
Phương pháp-9: In đậm một chuỗi con nhất định trong một chuỗi
Bạn có thể in đậm điểm trước dấu ngoặc trong Cột kết quả bằng cách làm theo phương pháp này d.
Bước 01 :
➤Thực hiện theo Bước 01 của Phương pháp- 1
6341
txt = InStr(1, Cell, "(")
sẽ trả về vị trí của dấu ngoặc đầu tiên và Cell.Characters(1, txt - 1).Font.Bold
sẽ tạo chuỗi con trước dấu ngoặc đầu tiên Đậm .
Bước-02 :
➤Chọn cột Kết quả
➤Đi đến Nhà phát triển Tab>> Macro Tùy chọn
Sau đó, Macro trình hướng dẫn sẽ xuất hiện.
➤Chọn Chuỗi con đậm (tên mã VBA) rồi Chạy .
Kết quả :
Sau đó, điểm trong Kết quả Cột sẽ được in đậm.
Phần Thực hành
Để tự thực hành, chúng tôi đã cung cấp phần Thực hành như bên dưới trong trang tính có tên Thực hành . Vui lòng tự làm.
Kết luận
Trong bài viết này, tôi đã cố gắng trình bày những cách dễ nhất để tìm chuỗi con bằng cách sử dụng VBA trong excel một cách hiệu quả. Hy vọng bạn sẽ thấy nó hữu ích. Nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào, vui lòng chia sẻ chúng với chúng tôi.