Nhờ giúp đỡ macro chạy công thức

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kingwizard

Thành viên mới
Tham gia
23/7/16
Bài viết
36
Được thích
1
Chào mọi người
Mình có dữ liệu ở cột A và B
Và công thức ở ô I2, J2 và K2, tạm cho là I2="A", J2="B", K2="C"
Mình muốn nhờ mọi người viết giúp 1 macro, tự động dán công thức trên vào ô I2, J2 và K2; và tự động kéo xuống đến hết dữ liệu ở cột A và B
Ví dụ cột A và B có dữ liệu đến hàng 100 thì công thức sẽ kéo đến I100, J100 và K100
Xin cám ơn nhiều ạ
 
Cho xin chút hình ảnh đi bạn
Đính kèm file càng tốt
 
Upvote 0
Cho xin chút hình ảnh đi bạn
Đính kèm file càng tốt
Đây ạ
Thực ra công thức ở cột I J K có liên quan đến data ở cột A B, nhưng để tiện thì mình chỉ để ="A", ="B", ="C" cho gọn
À mình quên là chạy công thức theo thứ tự cột I J K ạ. I trước rồi đến J rồi đến K
 

File đính kèm

  • test3.xlsx
    10.8 KB · Đọc: 6
Upvote 0
Làm đại, trật thì mình làm lại:
PHP:
Sub addformula()
Range("I2:K" & Cells(Rows.Count, "A").End(xlUp).Row).Formula = "=A2"
End Sub
 
Upvote 0
Ơ bị nhầm rồi bạn
Ý là mình muốn ô I2 có công thức là ="A" (không phải giá trị I2 = A2)
Vì công thức này tính toán data bên 2 cột A và B khá dài nên mình chỉ để đại diện là ="A" thôi, sau khi bạn viết macro xong mình sẽ thay "A" bằng công thức
 
Upvote 0
Công thức của bạn thế nào?
Sao bạn có thể bảo đảm khi thay "A" bằmg công thức đó thì nó vẫn chạy đúng?
 
Upvote 0
Mình xin lỗi, vì lý do bảo mật nên mình khó đưa file lên được
Nhưng đây là macro khi mình dùng record ghi lại quá trình past công thức vào I3, J3, K3
Khi mình bấm chạy thì macro này chạy được đúng cho I3, J3, K3
Bây giờ mình muốn công thức chạy từ hàng 3 đến hết dữ liệu của cột A thì làm sao ạ?


Sub Macro5()
'
' Macro5 Macro
'

'
Range("I3").Select
ActiveCell.Formula2R1C1 = _
"=IF(AND(SUMPRODUCT(--ISNUMBER(SEARCH({""*屋内"";""屋外"";""暗渠"";""便所""},RC[-7])))>0,RC[-6]=""""),""YYY"",IF(R[-1]C=""YYY"",IF(ISNUMBER(VALUE(LEFT(RC[-8],1))),""XXX"",""YYY""),""XXX""))"
Range("J3").Select
ActiveCell.Formula2R1C1 = _
"=IFS(R[1]C[-1]=""XXX"",IF(AND(EXACT(RC[-9],TRIM(RC[-9])),RC[-8]="""",R[1]C[-8]="""",RC[-7]=""""),RC[-9],IF(AND(EXACT(RC[-9],TRIM(RC[-9])),RC[-8]="""",R[1]C[-8]<>""""),IFS(RC[-7]<>"""",IF(R[1]C[-9]<>"""",R[1]C[-9],""""),RC[-7]="""",RC[-9]),IF(R[1]C[-8]="""",IFS(R[1]C[-7]="""","""",R[1]C[-7]<>"""",R[1]C[-9]),RC))),R[1]C[-1]=""YYY"",IF(AND(R[1]C[-9]<>"""",R[1]C[-8]<>""" & _
"""),IFERROR(IFS(ISNUMBER(SEARCH(""スパイ"",R[1]C[-9])),LEFT(R[1]C[-9],SEARCH(""スパイ"",R[1]C[-9])-1),ISNUMBER(SEARCH(""矩形"",R[1]C[-9])),LEFT(R[1]C[-9],SEARCH(""矩形"",R[1]C[-9])-1)),IF(OR(ISNUMBER(SEARCH(""チャンバー"",R[1]C[-9])),ISNUMBER(SEARCH(""ボックス"",R[1]C[-9]))),"""",R[1]C[-9])),IF(AND(R[1]C[-6]="""",EXACT(R[1]C[-9],TRIM(R[1]C[-9]))=FALSE),"""",IF(RC[-9]=R[1]C[-9],RC,IFS(" & _
"ISNUMBER(SEARCH(""ペトロ"",RC[-9])),""防食工事""&R[-1]C[-8],ISNUMBER(SEARCH(""回"",RC[-9])),""塗装工事""&R[-1]C[-8],OR(ISNUMBER(SEARCH(""mm"",RC[-9])),R[1]C[-6]="" 個""),""保温工事""&R[-1]C[-8],ISNUMBER(SEARCH(""mm"",R[1]C[-9])),RC[-9]&""保温HAY消音"",ISNUMBER(SEARCH(""塗装"",R[1]C[-9])),RC[-9]&TRIM(R[1]C[-9]))))))" & _
""
Range("K3").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-9]="""","""",IF(ISNUMBER(SEARCH(""〃"",RC[-10])),SUBSTITUTE(R[-1]C,TRIM(R[-1]C[-9]),TRIM(RC[-9])),TRIM(RC[-10])&"" ""&TRIM(RC[-9])))"
Range("K4").Select
End Sub
 
Upvote 0
Bạn không cần phải đưa thông tin thật lên làm gì.
Bạn chỉ cần đưa thông tin đại diện lên, miễn sao đúng ô, dòng cột, loại thông tin trong ô,...
Bảo đảm nó đại diện hết các trường hợp có thể có của thông tin thật.
Apple, Banana, cóc, xoài, ổi gì cũng OK hết mà
 
Upvote 0
Web KT

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

Back
Top Bottom