Code kéo công thức xuống đến hàng cuối cùng

Liên hệ QC

alex-luu

Thành viên thường trực
Tham gia
10/3/15
Bài viết
300
Được thích
52
Các anh chị cho em hỏi, đoạn code em viết bị sai chỗ nào
Phần nội dung từ cột A đến cột Y sẽ thay đổi mỗi ngày (sau khi em lấy dữ liệu từ các file báo cáo đem về (hôm nay 10.000 dòng, nhưng ngày mai có thể 20.000 hoặc 30.000 dòng.
Em không muốn fill sẵn công thức ở 2 cột Z và AA vì như thế nó sẽ rất nặng file, nên em chèn sub này vào để mỗi khi lấy xong báo cáo, thì nó sẽ xem bên cột A, hàng cuối cùng có dữ liệu là hàng thứ mấy, thì nó sẽ tự động kéo tiếp công thức hết hàng đó thôi.

Sub Fill_formula()
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Range("Z6:AA" & LastRow).Value = Range("Z6:AA6").FormulaR1C1
End With
End Sub
1622874036388.png

nhưng sau khi kéo thì nó bị nhảy hàng, ví dụ :
Ở ô gốc Z6 : công thức của em là =Value(X6)
Vậy nhưng sau khi code chạy, nó kéo xuống ô X7 thì công thức của em lại biến thành =Value(X8) ???
 

File đính kèm

  • Book1.xlsm
    20.4 KB · Đọc: 6
Lần chỉnh sửa cuối:
Sửa lại Code của bạn:
Mã:
Sub Fill_formula_Attendant()
    Dim LastRow As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("Z6:z" & LastRow).FormulaR1C1 = "=VALUE(RC[-2])"
        .Range("AA6:AA" & LastRow).FormulaR1C1 = "=TRIM(SUBSTITUTE(RC[-20],"" Class"",""""))&RC[-2]"
        'LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        '.Range("Z6:AA" & LastRow).Value = .Range("Z6:AA6").FormulaR1C1
    End With
    ' Range("AA7").Select
End Sub
 
Sửa lại Code của bạn:
Mã:
Sub Fill_formula_Attendant()
    Dim LastRow As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("Z6:z" & LastRow).FormulaR1C1 = "=VALUE(RC[-2])"
        .Range("AA6:AA" & LastRow).FormulaR1C1 = "=TRIM(SUBSTITUTE(RC[-20],"" Class"",""""))&RC[-2]"
        'LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        '.Range("Z6:AA" & LastRow).Value = .Range("Z6:AA6").FormulaR1C1
    End With
    ' Range("AA7").Select
End Sub
Hay quá, cảm ơn bạn
 
Web KT
Back
Top Bottom