Hướng dẫn 2 cách gán công thức từ VBA vào Excel

Viết công thức trong Excel là một việc tốn nhiều thời gian và hay phải lặp đi lặp lại. Vậy tại sao chúng ta không sử dụng VBA để làm việc đó trở nên nhanh chóng, đơn giản hơn? Hãy cùng Học Excel Online tìm hiểu 2 cách gán công thức từ VBA vào Excel ngay nào.

Cách thứ 1: Record Macro

Đây là một cách đơn giản, dễ thực hiện với những ai chưa biết tự viết code trong VBA. Việc cần làm chỉ là:

  • Mở thẻ Developer trong Excel lên.
  • Bấm Record macro
  • Thực hiện viết mẫu 1 công thức trong Excel
  • Bấm Stop Recording
  • Vào cửa sổ VBA để kiểm tra

Ví dụ như sau:

Khi ghi lại Macro thực hiện hàm SUM tại ô A7 tính tổng cho vùng A2:A6 ta thu được đoạn code:

ActiveCell.FormulaR1C1 = “=SUM(R[-5]C:R[-1]C)”

Đoạn code này hiểu thế nào?

ActiveCell: là ô được kích hoạt, ô đang được chọn. Ở đây ô đang được chọn là ô A7.

FormulaR1C1 là thuộc tính gán công thức vào Cells/Range dưới dạng tham chiếu R1C1 trong Excel

=SUM(R[-5]C:R[-1]C) là nội dung công thức được gán, trong đó:

  • R[-5]C là Cách 5 dòng 0 cột tính lên phía trên. Vị trí đang chọn là A7 thì R[-5]C cho kết quả là A2
  • R[-1]C là cách 1 dòng 0 cột tính lên phía trên. Vị trí đang chọn là A7 thì R[-1]C cho kết quả là A6

Như vậy công thức này tương đương với =SUM(A2:A6)

Khi sử dụng Record Macro thì luôn cho chúng ta dạng FormulaR1C1. Dạng này nếu không quen đọc thì sẽ khó khăn cho chúng ta khi xác định nội dung công thức.

Xem thêm: Hướng dẫn cách chuyển kiểu tham chiếu R1C1 trong Excel

Cách thứ 2: Sử dụng thuộc tính Formula khi viết code trong VBA

Chúng ta có thể dựa vào cách Record Macro để biết nguyên tắc VBA gán công thức vào trong Excel như thế nào. Nhưng cách đó thường không áp dụng nhiều, bởi tham chiếu R1C1 khó viết.

Do vậy chúng ta có thể sử dụng thuộc tính Formula (không phải FormulaR1C1) và viết trực tiếp trong cửa sổ viết code của VBA.

Cú pháp khá đơn giản, gồm 3 phần:

  • Phần 1: Vị trí ô/vùng ô sẽ đặt công thức. Xác định kèm theo tên Sheet, tên Workbook nếu cần.
  • Phần 2: Thuộc tính .Formula
  • Phần 3: Nội dung công thức cần gán vào ô/vùng ô. Nội dung công thức cần đặt trong dấu nháy kép.

Ví dụ như sau:

Nhưng việc này cần chú ý những nội dung gì? Các bạn có thể đọc thêm tại bài viết:

Hướng dẫn cách gán công thức vào ô và tự động lấy kết quả công thức Excel VBA