Chắc hẳn chúng ta không lạ gì với chức năng Merge & Center của Excel. Tuy nhiên chức năng này có 1 hạn chế là nó chỉ nhóm được các dữ liệu giống nhau, còn trong một vùng ô có nhiều dữ liệu khác nhau thì lại không làm được. Vậy bạn có bao giờ tự hỏi: Làm thế nào để có thể Tự động trộn ô và căn lề giữa nhiều dữ liệu khác nhau trong Excel? Đúng rồi, chúng ta có thể làm được, mà làm tự động nữa là khác. Bởi vì chúng ta có thể sử dụng VBA để tạo ra chức năng đó. Hãy cùng Học Excel Online tìm hiểu ngay cách làm này nào.
Để giúp các bạn hình dung được mục tiêu, chúng ta sẽ xem bảng dữ liệu sau:
Và chỉ với 1 nút bấm, hay sử dụng 1 tổ hợp phím tắt, chúng ta đã có kết quả như sau (tự động thực hiện đồng thời cả 2 cột):
Chức năng Merge & Center chắc chắn không làm được như vậy phải không nào. Điều thú vị chính là VBA lại làm được điều này khá dễ dàng.
Xem nhanh
Bước 1: Tại chương trình Excel, chúng ta mở cửa sổ VBA bằng cách bấm tổ hợp phím tắt Alt + F11
Bước 2: Tạo mới 1 Module
Bước 3: Trong Module vừa tạo, chúng ta dán đoạn code này:
Trong đoạn code trên, Học Excel Online đã giải thích rõ ý nghĩa của các đoạn code để các bạn có thể hiểu được cách hoạt động của từng câu lệnh.
Phương thức hoạt động của lệnh này là:
Bước 1: Vẽ ra 1 nút lệnh. Có thể sử dụng chức năng Insert/ Shapes vẽ ra 1 hình chữ nhật. Trong hình chữ nhật này nhập đoạn text là “Auto Merge”
Bước 2: Bấm chuột phải vào hình chữ nhật vừa tạo, chọn Assign Macro
Bước 3: Trong cửa sổ Assign Macro chúng ta thực hiện gán Sub AutoMergeCenter đã tạo ở trên
Bây giờ chúng ta chọn vùng A2:B15, sau đó bấm vào nút Auto Merge (hình chữ nhật) và xem kết quả nhé:
* Lưu ý:
Cách làm trên thực hiện được khi các dữ liệu giống nhau phải nằm liền kề nhau. Do đó các bạn nên sắp xếp dữ liệu trước khi thực hiện việc này nhé.
Tìm hiểu: Hướng dẫn cách sắp xếp dữ liệu theo nhiều điều kiện trong Excel
Ngoài ra các bạn có thể tham khảo thêm một vài ứng dụng các của VBA để thấy tính ứng dụng của VBA nhé:
Hướng dẫn cách lập báo cáo tổng hợp tự động với Excel và VBA
Tự động cập nhật báo cáo khi thay đổi thời gian bằng VBA
Hướng dẫn cách xuất dữ liệu hàng loạt từ Excel ra PDF bằng VBA