Tách chuỗi bất kỳ trong Excel bằng VBA một cách nhanh chóng

Trong quá trình sử dụng Excel, có thể có bạn gặp vấn đề là trong 1 ô có nhiều chuỗi ngăn cách nhau bởi dấu xuống dòng (Alt+Enter chẳng hạn), bạn muốn tách các cụm đó ra các ô riêng lẻ thành 1 cột mà trong Excel không hỗ trợ hàm để tách ra. Bài viết sẽ hướng dẫn các bạn sử dụng VBA trong Excel để giải quyết bài toán trên.

Video hướng dẫn thực hiện chi tiết

Cách mở chế độ Developers VBA và tạo hàm tách chuỗi

Các bạn khởi động Excel xong, rồi vào menu File -> Options -> Customize Ribbon. Trong khung Main Tabs, các bạn click vào ô Developer -> OK.

Mở menu Developer

Menu Developer cho các nhà phát triển sử dụng VBA có dạng như sau:

Menu Developer

Kế đến các bạn nhấn tổ hợp phím Alt+F11 để mở trình soạn code VBA lên, sau đó các bạn vào Insert -> Module và gõ đúng đoạn code sau vào rồi trở về trang tính Excel (Hãy nhớ lưu file - Save để sử dụng lại):

tạo hàm tách chuỗi

Cách thêm Add-ins A-Tools vào Excel

Link cài đặt Add-ins A-Tools 32bit64bitA-Tools 32bit và A-Tools 64bit (Các bạn vào menu File -> Account -> About Excel để kiểm tra phiên bản Excel, riêng phiên bản Office 2019 chỉ có 64bit)

Mở Account trong File

xem phiên bản Excel

Excel 2019 chỉ có version 64bit

Thêm A-Tools: Đầu tiên vào menu File -> Options -> Add-ins -> Go như hình bên dưới:

Open Add-ins

Tiếp theo các bạn tích chọn hết các Add-ins trong hộp thoại cho mình rồi click tiếp OK (Đảm bảo rằng các bạn đã cài đặt các Add-ins theo đường link ở trên):

tích chọn các Add-ins

Sau khi làm xong bước trên ta sẽ có menu A-Tools như sau:

menu A-Tools

Cách sử dụng hàm tách chuỗi

Giả sử ta có ô A1 có nhiều chuỗi cách nhau bởi dấu xuống dòng như sau (nhấn tổ hợp Alt+Enter để xuống dòng trong cùng 1 ô Cell):

các chuỗi trong 1 ô cách nhau bởi xuống dòng

Kế đến các bạn lựa chọn 1 ô rồi gõ công thức sau (trong bài dùng ô B2):

=bs_FillArray(TachChuoi(A1,CHAR(10)),"TP=YES")

Lưu ý rằng ô A1 có thể thay bằng ô khác miễn chứa chuỗi cần tách là được và có dạng như hình phần trên mô tả.

chuỗi được tách ra thành các ô nằm dọc

Nếu bạn bỏ cụm "TP=YES" tức là gõ như sau:

=bs_FillArray(TachChuoi(A1,CHAR(10))

Kết quả hàm trả về sẽ nằm theo chiều ngang.

chuỗi được tách ra thành các ô hàng ngang

Tổng kết

Trên đây là những bước hướng dẫn cơ bản sử dụng kết hợp VBA và Add-ins, nó giúp ta sử dụng Excel 1 cách hiệu quả hơn trong các tình huống khác nhau. Hãy đánh giá và nhận xét góp ý cho bài viết vì nó là miễn phí!

Chúc các bạn thành công!!!

CHO ĐIỂM BÀI VIẾT NÀY

vote data

Bình luận bài viết

0989.717.035
ZALO CHAT
TOP