Máy tính doanh số trong Excel VBA
Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tính tổng doanh thu của mỗi nhân viên trong khoảng thời gian ba năm.
Tình huống:
Hai trang tính còn lại có cùng thiết lập, nhưng có sự kết hợp khác nhau giữa tháng và nhân viên, và số lượng bán hàng khác nhau. Có một số cách để tính tổng doanh thu của từng nhân viên trong Excel, nhưng chúng ta sẽ thấy rằng nó có thể được thực hiện trong Excel VBA rất dễ dàng.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:
-
Đầu tiên, chúng ta khai báo ba biến và một đối tượng Worksheet. Một biến kiểu Chuỗi chúng ta gọi là nhân viên, một biến kiểu Số nguyên chúng ta gọi là tổng, một đối tượng Trang tính mà chúng ta gọi là trang tính và một biến kiểu Số nguyên mà chúng ta gọi là i.
Dim employee As String, total As Integer, sheet As Worksheet, i As Integer
-
Chúng tôi khởi tạo hai biến. Chúng tôi khởi tạo biến tổng với giá trị 0. Chúng tôi sử dụng hàm InputBox để lấy tên nhân viên từ người dùng.
total = 0 employee = InputBox("Enter the employee name (case sensitive)")
-
Sau khi người dùng nhập tên nhân viên, chúng ta muốn tính tổng doanh số của nhân viên này. Sổ làm việc bao gồm ba trang tính.
Chúng tôi muốn một chương trình vẫn có thể được sử dụng nếu các trang tính được thêm vào trong tương lai. Do đó chúng tôi sử dụng dòng mã sau:
For Each sheet In Worksheets
-
Chúng ta bắt đầu một vòng lặp For Next khác.
For i = 2 To 13
-
Nếu tên nhân viên đã nhập khớp với tên nhân viên trong cột B, Excel VBA sẽ thêm số bán hàng vào tổng biến. Thêm các dòng mã sau:
If sheet.Cells(i, 2).Value = employee Then total = total + sheet.Cells(i, 3).Value End If
-
Đừng quên đóng cả hai vòng lặp.
Next i Next sheet
-
Cuối cùng, chúng tôi hiển thị tổng doanh số của nhân viên bằng cách sử dụng hộp thư.
MsgBox "Total sales of " & employee & " is " & total
-
Chạy thử chương trình.
Kết quả cho David: