Hướng dẫn cho người mới bắt đầu về cách viết macro VBA trong Excel (Và tại sao bạn nên học)

Hướng dẫn cho người mới bắt đầu về cách viết macro VBA trong Excel (Và tại sao bạn nên học)

Macro Excel có thể giúp bạn tiết kiệm rất nhiều thời gian bằng cách tự động hóa các quy trình Excel mà bạn thường sử dụng . Nhưng macro thực sự khá hạn chế. Bạn rất dễ mắc lỗi với công cụ ghi âm và quá trình ghi âm rất khó xử.





Sử dụng VBA để tạo macro mang lại cho bạn nhiều sức mạnh hơn. Bạn có thể cho Excel biết chính xác những gì phải làm và cách thực hiện. Bạn cũng có thể truy cập vào nhiều chức năng và khả năng hơn. Nếu bạn sử dụng Excel thường xuyên, bạn nên học cách tạo macro VBA.





Chúng ta sẽ bắt đầu với những điều cơ bản.





VBA là gì?

VBA là Visual Basic cho các ứng dụng , một ngôn ngữ lập trình mà bạn có thể sử dụng trong nhiều ứng dụng của Microsoft. Visual Basic là một ngôn ngữ lập trình và VBA là phiên bản dành riêng cho ứng dụng của nó. (Microsoft đã ngừng Visual Basic vào năm 2008, nhưng VBA vẫn đang phát triển mạnh mẽ).

May mắn thay cho những người không phải là lập trình viên, VBA rất đơn giản và giao diện mà bạn sử dụng để chỉnh sửa nó cung cấp rất nhiều hỗ trợ. Nhiều lệnh bạn sẽ sử dụng các đề xuất bật lên và hoàn thành tự động, giúp bạn làm cho tập lệnh của mình hoạt động nhanh chóng.



Tuy nhiên, VBA cần một thời gian để làm quen.

Ưu điểm của Macro VBA trong Excel

Nếu VBA khó hơn ghi macro, tại sao bạn lại sử dụng nó? Câu trả lời ngắn gọn là bạn nhận được nhiều sức mạnh hơn từ các macro VBA.





Thay vì nhấp vào xung quanh bảng tính của bạn và ghi lại những nhấp chuột đó, bạn có thể truy cập đầy đủ các chức năng và khả năng của Excel. Bạn chỉ cần biết cách sử dụng chúng.

cách bẻ khóa ios 11 bằng máy tính

Và một khi bạn cảm thấy thoải mái hơn với VBA, bạn có thể làm tất cả những điều bạn có thể làm trong một macro thông thường trong thời gian ngắn hơn rất nhiều. Kết quả cũng sẽ dễ đoán hơn, vì bạn đang nói với Excel chính xác phải làm gì. Không có sự mơ hồ nào cả.





Khi bạn đã tạo macro VBA của mình, thật dễ dàng lưu và chia sẻ nó để bất kỳ ai khác có thể tận dụng nó. Điều này đặc biệt hữu ích khi bạn đang làm việc với nhiều người cần làm những việc giống nhau trong Excel.

Hãy xem xét một macro VBA đơn giản để xem nó hoạt động như thế nào.

Ví dụ về Macro VBA trong Excel

Hãy nhìn vào một macro đơn giản. Bảng tính của chúng tôi chứa tên của nhân viên, số cửa hàng nơi nhân viên làm việc và doanh thu hàng quý của họ.

Macro này sẽ thêm doanh số bán hàng quý từ mỗi cửa hàng và ghi tổng số đó vào các ô trong bảng tính (nếu bạn không chắc chắn về cách truy cập hộp thoại VBA, hãy xem hướng dẫn VBA của chúng tôi tại đây ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Điều này có thể trông dài và phức tạp, nhưng chúng tôi sẽ chia nhỏ nó ra để bạn có thể xem các yếu tố riêng lẻ và tìm hiểu một chút về kiến ​​thức cơ bản của VBA.

Khai báo Sub

Ở đầu mô-đun, chúng ta có 'Sub StoreSales ()'. Điều này xác định một phụ mới được gọi là StoreSales.

Bạn cũng có thể định nghĩa các hàm --- sự khác biệt là các hàm có thể trả về giá trị và subs thì không thể (nếu bạn quen thuộc với các ngôn ngữ lập trình khác, subs là phương thức tương đương). Trong trường hợp này, chúng tôi không cần trả về một giá trị, vì vậy chúng tôi đang sử dụng một phụ.

Ở cuối mô-đun, chúng ta có 'End Sub', điều này cho Excel biết rằng chúng ta đã hoàn thành với macro VBA này.

Khai báo các biến

Các dòng mã đầu tiên trong tập lệnh của chúng tôi đều bắt đầu bằng 'Dim.' Dim là lệnh của VBA để khai báo một biến.

Vì vậy, 'Dim Sum1' tạo một biến mới được gọi là 'Sum1.' Tuy nhiên, chúng ta cần cho Excel biết đây là loại biến nào. Chúng ta cần chọn một kiểu dữ liệu. Có nhiều kiểu dữ liệu khác nhau trong VBA --- bạn có thể tìm thấy danh sách đầy đủ trong tài liệu trợ giúp của Microsoft .

Vì macro VBA của chúng tôi sẽ xử lý tiền tệ, chúng tôi đang sử dụng kiểu dữ liệu Tiền tệ.

Câu lệnh 'Dim Sum1 As Currency' yêu cầu Excel tạo một biến Currency mới có tên là Sum1. Mỗi biến mà bạn khai báo cần phải có câu lệnh 'As' để cho Excel biết kiểu của nó.

Bắt đầu vòng lặp For

Vòng lặp là một số thứ mạnh mẽ nhất mà bạn có thể tạo bằng bất kỳ ngôn ngữ lập trình nào. Nếu bạn không quen với các vòng lặp, hãy xem phần giải thích về vòng lặp Do-While này. Trong ví dụ này, chúng tôi đang sử dụng vòng lặp For, cũng được đề cập trong bài viết.

Đây là vòng lặp trông như thế nào:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Điều này yêu cầu Excel lặp lại qua các ô trong phạm vi mà chúng tôi đã chỉ định. Chúng tôi đã sử dụng một Đối tượng phạm vi , là một loại đối tượng cụ thể trong VBA. Khi chúng ta sử dụng nó theo cách này --- Range ('C2: C51') --- nó cho Excel biết rằng chúng ta quan tâm đến 50 ô đó.

'Đối với từng' cho Excel biết rằng chúng ta sẽ làm điều gì đó với mỗi ô trong phạm vi. 'Ô tiếp theo' xuất hiện sau mọi thứ chúng ta muốn làm và yêu cầu Excel bắt đầu vòng lặp từ đầu (bắt đầu với ô tiếp theo).

Chúng tôi cũng có câu lệnh này: 'If IsEmpty (Cell) Then Exit For.'

Bạn có thể đoán nó làm gì không?

Ghi chú: Nói đúng, sử dụng vòng lặp While có thể là lựa chọn tốt hơn . Tuy nhiên, để phục vụ cho việc giảng dạy, tôi quyết định sử dụng vòng lặp For với Exit.

làm thế nào để biết khi nào tài khoản google của bạn được tạo

Câu lệnh If-Then-Else

Cốt lõi của macro cụ thể này nằm trong các câu lệnh If-Then-Else. Đây là chuỗi các câu lệnh điều kiện của chúng tôi:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

Đối với hầu hết các phần, bạn có thể đoán những gì các câu lệnh này làm. Tuy nhiên, bạn có thể không quen với ActiveCell.Offset. 'ActiveCell.Offset (0, -1)' yêu cầu Excel xem xét ô nằm bên trái một cột của ô hiện hoạt.

Trong trường hợp của chúng tôi, đó là yêu cầu Excel tham khảo cột số cửa hàng. Nếu Excel tìm thấy 1 trong cột này, thì nó sẽ lấy nội dung của ô hiện hoạt và thêm nó vào Sum1. Nếu nó tìm thấy số 2, nó sẽ thêm nội dung của ô hiện hoạt vào Sum2. Và như thế.

Excel sẽ duyệt qua tất cả các câu lệnh này theo thứ tự. Nếu câu lệnh điều kiện thỏa mãn, nó hoàn thành câu lệnh Then. Nếu không, nó sẽ chuyển sang ElseIf tiếp theo. Nếu nó đi đến cùng và không có điều kiện nào được thỏa mãn, nó sẽ không thực hiện bất kỳ hành động nào.

Sự kết hợp của vòng lặp và các điều kiện là những gì thúc đẩy macro này. Vòng lặp yêu cầu Excel đi qua từng ô trong vùng chọn và các điều kiện cho biết phải làm gì với ô đó.

Viết giá trị ô

Cuối cùng, chúng tôi phải ghi kết quả của các phép tính của chúng tôi vào các ô. Dưới đây là những dòng chúng tôi sử dụng để làm điều đó:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Với '.Value' và dấu bằng, chúng tôi đặt mỗi ô đó thành giá trị của một trong các biến của chúng tôi.

Và đó là nó! Chúng tôi nói với Excel rằng chúng tôi đã viết xong Phụ này với 'Kết thúc Sub' và macro VBA đã hoàn tất.

Khi chúng tôi chạy macro với Macro nút trong Nhà phát triển tab, chúng tôi nhận được số tiền của chúng tôi:

Kết hợp các khối xây dựng của VBA trong Excel lại với nhau

Khi bạn lần đầu tiên nhìn vào macro VBA ở trên, nó trông khá phức tạp. Nhưng sau khi chia nhỏ nó thành các phần cấu thành của nó, logic trở nên rõ ràng. Giống như bất kỳ ngôn ngữ kịch bản nào, cần có thời gian để làm quen với cú pháp của VBA.

Nhưng với thực hành, bạn sẽ xây dựng vốn từ vựng VBA của mình và có thể viết macro nhanh hơn, chính xác hơn và với sức mạnh hơn nhiều so với những gì bạn có thể ghi lại.

Khi bạn gặp khó khăn, chạy tìm kiếm trên Google là một cách nhanh chóng để trả lời các câu hỏi VBA của bạn. Và Tham chiếu VBA Excel của Microsoft có thể hữu ích nếu bạn sẵn sàng tìm hiểu kỹ để có câu trả lời kỹ thuật.

Khi bạn đã hiểu những điều cơ bản, bạn có thể bắt đầu sử dụng VBA cho những việc như gửi email từ Excel , xuất các tác vụ Outlook và hiển thị thông tin PC của bạn.

phụ kiện này có thể không được hỗ trợ bộ sạc
Đăng lại Đăng lại tiếng riu ríu E-mail Đây là lý do tại sao FBI ban hành cảnh báo cho Hive Ransomware

FBI đã đưa ra cảnh báo về một loại ransomware đặc biệt khó chịu. Đây là lý do tại sao bạn cần phải đặc biệt cảnh giác với ransomware Hive.

Đọc tiếp
Chủ đề liên quan
  • Năng suất
  • Bảng tính
  • Microsoft Excel
  • Microsoft Office 2016
  • Macro
  • Hướng dẫn viết mã
Giới thiệu về tác giả Sau đó, Albright(506 bài báo đã xuất bản)

Dann là một nhà tư vấn chiến lược nội dung và tiếp thị, người giúp các công ty tạo ra nhu cầu và khách hàng tiềm năng. Anh ấy cũng viết blog về chiến lược và tiếp thị nội dung tại dannalbright.com.

Xem thêm từ Dann Albright

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký