Lê Thị Kim Đồng 
Lê Thị Kim Đồng 
Thảo luận 2 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 500 lượt xem

Làm thế nào để viết ng thức hàm ng thức trong VBA thay thế viết trong

Làm thế nào để viết công thức hàm công thức trong VBA thay thế viết trong Excell (vd: countif), sau đó coppy công thức tự động xuống các hàng tiếp theo ạ?

Thảo luận 2 câu trả lời
Lượt xem 500 lượt xem
Vỗ tay vỗ tay
Lê Thị Kim Đồng  10:10 - Oct 12, 2020

Có 2 cách:

Cách 1: gán công thức trực tiếp vào 1 ô rồi kết hợp lệnh Filldown như sau:

Ví dụ:

gán hàm SUM(A2:D2) vào ô E2 thì:

Range("E2").Formula = "=SUM(A2:D2)"

Sao chép công thức từ ô E2 tới ô E10:

Range("E2:E10").Filldown

Bỏ công thức, giữ nguyên kết quả cho vùng E2:E10

Range("E2:E10").Value = Range("E2:E10").Value

Với cách này bạn chú ý là khi gán công thức, nếu trong công thức có dùng dấu " thì tại vị trí đó bạn viết 2 lần dấu "", ví dụ:

Range("E2").Formula = "=IF(A2="""",""Đúng"",""Sai"")"

thì kết quả công thức tại ô E2 sẽ là =IF(A2="","Đúng","Sai")

Cách 2: sử dụng cách viết hàm trong VBA như sau:

Range("E2").Value =WorksheetFunction.Sum(range("A2:D2"))

Range("G2").Value =WorksheetFunction.CountIf(Range("A2:D2"), range("F2"))
Khi đó kết quả tại các ô E2, G2 sẽ là kết quả của hàm Sum, hàm Countif luôn (mà không thông qua 3 bước ở cách 1)

Với việc filldown công thức thì bạn dùng vòng lặp:

Dim i as long

For i = 2 to 10

Range("E" & i).Value =WorksheetFunction.Sum(range("A" & i & ":D" & i))

Next i

Vỗ tay vỗ tay
Lê Thị Kim Đồng  10:10 - Oct 12, 2020

Dạ, Cám ơn thầy ạ

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông