Giúp đỡ: Hiện công thức trên ô đích khi tính toán bằng code VBA

doductiep

Thành viên mới
Tham gia ngày
21 Tháng mười hai 2010
Bài viết
5
Được thích
0
Điểm
363
Tuổi
29
Chào các bác, em có 2 vấn đề nhờ chỉ giáo
1. Vd em có 1 câu lệnh VBA tính giá trị A6 bằng trung bình các ô A1 đến A5 như sau:
" Set myrange = Range(Cells(1,1), Cells(5, 1))
Cells(6,1).Formula = Application.WorksheetFunction.Average(myrange) "
sau khi chạy thì được kết quả ở ô A6 như mong muốn nhưng khi kích vào bảng excel thì ô đó chỉ có giá trị mà không có công thức.
Vậy có cách nào cho được công thức vào ô A6 bằng VB như khi làm trong excel thông thường không?
2. Hàm AverageA() không sử đụng được trong VBA phải không? vì khi em đưa vào toàn báo lỗi, muốn biết 1 hàm sẵn có sử dụng được trong VB hay không thì tham khảo ở đâu?
Xin cảm ơn!
 
Lần chỉnh sửa cuối:

emcute

Thành viên mới
Tham gia ngày
11 Tháng ba 2016
Bài viết
34
Được thích
16
Điểm
165
Cells(6,1).FormulaR1C1 = "=AVERAGE(R[-5]C:R[-1]C)"
 

doductiep

Thành viên mới
Tham gia ngày
21 Tháng mười hai 2010
Bài viết
5
Được thích
0
Điểm
363
Tuổi
29
Hoặc:
PHP:
 Sheet1.Range("A6").Formula = "=AVERAGE(A1:A5)"
Có 1 vấn đề là ô cell trong công thức của em nó thay đổi theo vòng lặp, khi đó không dùng công thức này được vì khi trong ngoặc rồi thì VB nó không nhận được giá trị biến. Có cách nào xử lý được không ạ?
Vd sau không thực hiện được: Cells(i + 1, j).FormulaR1C1 = "=sum(R[-i]C:R[-1]C"
i là biến thay đổi sau mỗi vòng lặp
 

VetMini

Gian hùng bàn phiếm (thành viên trôi nước)
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
7,917
Được thích
9,261
Điểm
560
Có 1 vấn đề là ô cell trong công thức của em nó thay đổi theo vòng lặp, khi đó không dùng công thức này được vì khi trong ngoặc rồi thì VB nó không nhận được giá trị biến. Có cách nào xử lý được không ạ?
Vd sau không thực hiện được: Cells(i + 1, j).FormulaR1C1 = "=sum(R[-i]C:R[-1]C"
i là biến thay đổi sau mỗi vòng lặp
Cells(i + 1, j).FormulaR1C1 = Replace("=sum(R[-i]C:R[-1]C", "i", i)
 
Top Bottom