Làm Cách Nào Để Tự Động Thực Thi Macro Excel Khi Thay Đổi Ô?

Chạy mã macro ngay khi giá trị ô thay đổi trong Excel

Thông thường, trong Excel chúng ta có thể nhấn phím F5 hoặc nút Run để thực thi mã VBA. Tuy nhiên, bạn đã bao giờ thử chạy mã macro cụ thể khi giá trị ô thay đổi chưa? Ở phần này, lingocard.vn sẽ giới thiệu một số thủ thuật để nhanh chóng giải quyết công việc này trong Excel.

Đang xem: Tự động thực thi macro excel khi thay đổi ô?

Để chạy một mã macro bất kỳ mỗi khi thay đổi giá trị ô trong Excel, đoạn mã VBA sau có thể giúp bạn, cách thực hiện như sau:

Bước 1: Mở tệp Excel cần chạy mã macro khi một giá trị ô cụ thể thay đổi.

Bước 2: Kích chuột phải vào tên của sheets mà bạn muốn thực thi macro.

Bước 3: Trong menu hiển thị chọn tùy chọn View Code.

Bước 4: Trong cửa sổ Microsoft Visual Basic for applications đã mở, sao chép và dán mã dưới đây vào modul trống ở bên phải.

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = “$A$1” Then Call Mymacro End IfEnd Sub

*

Lưu ý: Trong đoạn mã trên, A1 là ô cụ thể mà bạn muốn khi thay đổi giá trị trong ô này thì mã macro sẽ chạy. Mymacro là tên macro mà bạn muốn chạy, nhưng tùy theo nhu cầu bạn có thể thay đổi bằng tên khác.

Bước 5: Lưu và đóng cửa sổ mã, bây giờ khi bạn nhập hoặc thay đổi giá trị trong ô A1, mã cụ thể sẽ được kích hoạt cùng một lúc.

Chạy mã macro khi giá trị ô trong một phạm vi thay đổi

Nếu bạn muốn chạy hoặc kích hoạt mã macro khi bất kỳ giá trị ô nào thay đổi trong một phạm vi ô, đoạn mã sau có thể giúp bạn.

Bước 1: Mở tệp Excel cần chạy mã macro khi một giá trị ô cụ thể thay đổi.

Bước 2: Kích chuột phải vào tên của sheets mà bạn muốn thực thi macro.

Bước 3: Trong menu hiển thị chọn tùy chọn View Code.

Bước 4: Trong cửa sổ Microsoft Visual Basic for Applications đã mở, sao chép và dán mã dưới đây vào modul trống ở bên phải.

Private Sub Worksheet_Change(ByVal Target As Range)If Not Intersect(Target, Range(“A1:B100”)) Is Nothing ThenCall MymacroEnd IfEnd Sub

*

Lưu ý: Trong đoạn mã trên, A1:B100 là phạm vi các ô cụ thể mà bạn muốn chạy mã. Mymacro là tên macro mà bạn muốn chạy.

Bước 5: Lưu và đóng cửa sổ mã, bây giờ khi bạn nhập hoặc thay đổi giá trị trong bất kỳ ô nào của A1:B100, mã cụ thể sẽ được thực thi ngay lập tức.

Chạy mã macro tự động dựa trên giá trị ô trong Excel

Nếu như ở phần trên lingocard.vn đã hướng dẫn các bạn cách chạy mã macro khi giá trị trong một ô hoặc phạm vi ô của tệp Excel thay đổi. Thì phần này sẽ là hướng dẫn để chạy mã macro tự động dựa trên giá trị ô trong Excel.

Xem thêm: Câu 1, 2, 3, 4 Trang 104 Vở Bài Tập Toán Lớp 5 Tập 2 Trang 104 105 ?

Ví dụ nếu bạn có nhiều mã macro trong file Excel và giờ muốn chạy những mã này dựa trên giá trị ô. Bài viết này sẽ hướng dẫn bạn về một số tình huống có thể gặp trong công việc hàng ngày khi sử dụng Excel.

Chạy mã macro nếu giá trị ô lớn hơn hoặc nhỏ hơn một giá trị cụ thể

Ví dụ: Nếu giá trị trong ô A1 nằm giữa 10 và 50, hãy chạy macro1 và nếu giá trị lớn hơn 50, hãy chạy macro2. Để giải quyết việc này trong Excel, bạn có thể sử dụng mã VBA sau.

Bước 1: Mở tệp Excel cần tạo mã VBA để thực hiện nhiệm vụ.

Bước 2: Sau đó kích chuột phải vào tên sheets mà bạn muốn thực thi macro dựa trên giá trị ô, sau đó chọn View Code.

Bước 3: Trong cửa sổ Microsoft Visual Basic for applications đã mở, sao chép và dán mã dưới đây vào modul trống ở bên phải.

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Cells.Count > 1 Then Exit Sub If IsNumeric(Target) And Target.Address = “$A$1” Then Select Case Target.Value Case 10 To 50: Macro1 Case Is > 50: Macro2 End Select End IfEnd Sub

Lưu ý : Trong đoạn mã trên:

A1 là ô chứa giá trị cụ thể mà bạn muốn chạy macro dựa trên.Case 10 To 50: Macro1: Có nghĩa là nếu giá trị từ 10 đến 50, hãy chạy Macro1;Case Is > 50: Macro2: Có nghĩa là nếu giá trị lớn hơn 50, hãy chạy Macro2.

Lưu ý: Nhưng tùy vào nhu cầu sử dụng mà bạn có thể thay đổi tên và tiêu chí macro theo nhu cầu và bạn cũng có thể thêm các tiêu chí khác sau.

Bước 4: Lưu và đóng cửa sổ mã VBA, bây giờ khi giá trị bạn nhập từ 10 đến 50 trong ô A1, Macro1 sẽ được kích hoạt, nếu giá trị nhập lớn hơn 50, Macro2 sẽ được thực thi.

Chạy mã macro nếu giá trị ô bằng văn bản cụ thể

Ví dụ: Nếu bạn muốn kích hoạt macro dựa trên văn bản cụ thể trong một ô, để chạy macro1 nếu nhập văn bản “Delete” và chạy macro2 nếu nhập văn bản “Insert”. Đoạn mã sau đây có thể giúp bạn.

Bước 1: Mở tệp Excel cần tạo mã VBA để thực hiện nhiệm vụ.

Bước 2: Sau đó kích chuột phải vào tên sheets mà bạn muốn thực thi macro dựa trên giá trị ô rồi chọn View Code.

Bước 3: Trong cửa sổ Microsoft Visual Basic for applications đã mở, sao chép và dán mã dưới đây vào modul trống ở bên phải.

Lưu ý: Trong đoạn mã trên, “Delete” và “Insert” là văn bản ô mà bạn muốn chạy macro dựa trên và Macro1 và Macro2

Bước 4: Lưu và đóng cửa sổ mã VBA, bây giờ, khi bạn nhập văn bản “Delete” vào ô A1, macro1 sẽ được kích hoạt, nếu nhập văn bản “Insert”, macro2 sẽ được thực thi.

Trên đây lingocard.vn vừa hướng dẫn các bạn các mã VBA đơn giản để chạy mã macro dựa trên giá trị ô, phạm vi ô hoặc ô thay đổi trong Excel. Nếu các bạn biết thêm các đoạn mã VBA thú vị khác để thực hiện các tính năng tương tự như trên, hãy chia sẻ cùng chúng tôi thông qua comment ở phía dưới nhé. Chúc các bạn thành công!

Thời đại công nghệ 4.0 đang dần đi vào cuộc sống đòi hỏi mọi người phải tự trang bị kiến thức tin học cho phù hợp để có thể bắt kịp nhưng thay đổi nhanh chóng này. Chẳng ai khác ngoài bạn hiểu mình cần trang bị thêm kiến thức gì. Hãy tìm hiểu ngayTẠI ĐÂYnhững khóa học hấp dẫn, có tính thực tế cao của lingocard.vn và đăng ký nhận tư vấn ngay hôm nay.

Xem thêm: Tiểu Luận Cải Cách Thủ Tục Hành Chính Ở Tỉnh Nghệ An, Tiểu Luận Cải Cách Hành Chính Chọn Lọc

lingocard.vn-Nền tảng học online duy nhất tại Việt Nam tập trung vào phát triển kỹ năng làm việc dành cho người đi làm
Với sứ mệnh: “Mang cơ hội phát triển kỹ năng, phát triển nghề nghiệp tới hàng triệu người”, đội ngũ phát triểnlingocard.vnđã và đang làm việc với những học viện, trung tâm đào tạo, các chuyên gia đầu ngành để nghiên cứu và xây dựng lên các chương trình đào tạo từ cơ bản đến chuyên sâu xung quanh các lĩnh vực: Tin học văn phòng, Phân tích dữ liệu, Thiết kế, Công nghệ thông tin, Kinh doanh, Marketing, Quản lý dự án…
50+ khách hàng doanh nghiệp lớn trong nhiều lĩnh vực như: Vietinbank, Vietcombank, BIDV, VP Bank, TH True Milk, VNPT, FPT Software, Samsung SDIV, Ajinomoto Việt Nam, Messer,…100.000+ học viên trên khắp Việt Nam

Tìm hiểu ngay các khóa học của lingocard.vn TẠI ĐÂY

Xem thêm bài viết thuộc chuyên mục: Excel