Thiết lập công thức cho các ô Excel bằng VBA
Trong bài này mình sẽ hướng dẫn cách sử dụng thuộc tính Formula để thiết lập công thức cho các ô tính Excel bằng ngôn ngữ VBA, đây là cách mà bạn can thiệp vào công thức Excel bằng code VBA.
Đề bài: Giả sử có bảng điểm như sau.
Hãy viết chương trình VBA xử lý yêu cầu: Khi click vào button "Click me" thì gán công thức tính tổng điểm ở cột A vào ô B2.
1. Xây dựng dữ liệu và button như hình ảnh trên.
Bài viết này được đăng tại [free tuts .net]
2. Bật chế độ Design Mode ở tab Developer.
3. Click dúp chuột hai lần vào button, sau đó nhập đoạn code sau vào sự kiện click.
Private Sub CommandButton1_Click() Range("B2").Formula = "=SUM(A1:A6)" End Sub
4. Quay trở lại giao diện Excel, bạn hãy click vào button, sau đó chọn ô B2 thì sẽ thấy công thức và kết quả như sau.
Như bạn thấy trong hình, ô B2 đã nhận được công thức mà ta đã thiết lập bằng mã VBA.
Cách khác: Bạn hãy thay đoạn code trong sự kiện click thành như sau.
Private Sub CommandButton1_Click() Dim total As Integer, ranges As Range, rag As Range, i As Integer, tmp As Integer Set ranges = Range("A2:A6") i = 1 total = 0 For Each rag In ranges tmp = rag.Value total = total + tmp i = i + 1 Next rag Range("B2").Value = total End Sub
Giải thích: Cách này sẽ sử dụng code VBA để lặp qua các ô từ A2 đến A6, sau đó cộng tổng lại rồi gán vào B2.
Ưu điểm của cách này là không thấy công thức, nhưng nhược điểm của nó là khi bạn thay đổi giá trị trong các ô A2:A6 thì tổng ở B2 không được cập nhật.
Danh sách bài tập
- Thiết lập giá trị cho một ô Excel bằng VBA
- Thiết lập công thức cho các ô Excel bằng VBA
- Viết thủ công thêm sự kiện click vào một Button VBA
- Thực hành Cut- Copy - Paste các ô Excel bằng VBA
- Cách sử dụng thuộc tính Select VBA để chọn phạm vi các ô Excel
- Sử dụng Offset trong VBA để chọn một ô hoặc dãy ô Excel
- Thuộc tính Resize Range trong VBA - thay đổi kích thước của phạm vi