Cách tìm chuỗi con bằng VBA (9 cách)

  • Chia Sẻ Cái Này
Hugh West

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 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 Left(txt, j - 1) sẽ trích xuất các chuỗi con trước .

➤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.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.