Hỏi code ghi công thức mảng bằng VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

NguyenNgocSon

KEEP WALKING
Tham gia
4/4/08
Bài viết
280
Được thích
833
Nghề nghiệp
Ths. Cầu hầm
Em có đoạn code sau để ghi công thức mảng vào vùng chọn
PHP:
Selection.FormulaArray = "=MatranDocungTongthe(mtk1,sh1,shkc)+MatranDocungTongthe(mtk2,sh2,shkc)"
Giờ em muốn dùng vòng lặp để ghi như sau:
PHP:
Dim CT As String
CT = ""
For i = 1 To 2
CT = CT + MatranDocungTongthe(Range("mtk" & i), Range("Sh" & i), Range("shkc"))
Next i
Selection.FormulaArray = "=CT"
'-----------------------------
MatranDocungTongthe: là hàm viết bằng VBA
mtk & i: là tên vùng trong Excel
sh& i: là tên vùng trong Excel
shkc: là tên vùng trong Excel
'-----------------------------
Nhưng nó không thực hiện được
Nhờ các bác check giúp
Cám ơn !
 
bạn muốn ghi công thức hay muốn ghi kết quả công thức?

1. Muốn ghi kết quả: CT là con số nào đó vừa mới tính ra trong môi trường VBA bằng những dòng lệnh bên trong For, sau khi end sub là nó mất. Nếu bạn gõ =CT vào 1 ô nào đó nó sẽ bị lỗi #Name: CT là kí rì?

Vậy câu cuối của code sẽ là thế này mới đúng:

Selection.Value = CT

2. Bạn muốn ghi công thức: CT không được tính trước mà phải là 1 chuỗi có cấu trúc công thức thí dụ như cái mà bạn record.

Vậy code phải là:
PHP:
For i = 1 To 2
CT = CT & IIf( Len(CT)>0, "+", "=") & "MatranDocungTongthe(mtk" & i & ", Sh" & i &", shkc)"
Next i
Selection.FormulaArray = CT
 
Upvote 0
Ok. Đã được. Cám ơn bác rất nhiều !
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom