Last Row

Liên hệ QC

le_anh81

Thành viên chính thức
Tham gia
7/9/07
Bài viết
87
Được thích
4
Cac bác cho em hỏi ý nghĩa của "A65000" trong công thức sau với ah:
LRow = Sheet1.Range("A65000").End(xlUp).Row
Em chỉ hiểu đây là để tìm "Last row", nhưng hiện tại em đang vướng vì chạy ko được.
File của em hơn 10M nên upload ko thành công.
Em cảm ơn.
Bài đã được tự động gộp:

Mục đích chính của em là ở file đính kèm.
- Fill: Copy toàn bộ công thức từ dòng 5 xuống dưới, y hệt của dòng 4
- Del: Paste value từ dòng 5 xuống, xóa bỏ công thức.
File này em đã xóa rất nhiều dòng rồi. Gốc hơn 100k dòng, macro chạy không đúng RANGE
sau khi đã xóa bớt dòng (chỉ để làm ví dụ) thì macro chạy bình thường, đúng RANGE
Mọi người xem giúp và giải thích giúp em với ah.
Em cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Nó giống như là đang chọn ô A65000 và nhấn 2 phím "Ctrl" và "∆" khi gặp ô nào khác rỗng đâu tiên thì thì LRow = chỉ số row ở ô đó
 
Lỗi vì chạy Sub Del_for() mà Sub Fill_For() chưa chạy thì LRow = 0
Có một biến thế thì không cần khai báo toàn cục. Nếu khai báo thế thì phải có bước xác định được LRow rồi mới thực hiện các sub kia.

PHP:
Option Explicit

Sub Fill_For()
    Application.ScreenUpdating = False
    Dim lRow As Long
'Lưu ý là phải hủy Filter thì kết quả mới đúng!'
    lRow = Sheet1.Range("A65000").End(xlUp).Row
    Sheet1.Range("L4:R" & lRow).FillDown
    Application.ScreenUpdating = True
End Sub

Sub Del_for()
    Dim lRow As Long
    lRow = Sheet1.Range("A65000").End(xlUp).Row
    Sheet1.Range("L5:R" & lRow).Value = Sheet1.Range("L5:R" & lRow).Value2
End Sub

Đọc thuộc tính End() ở bài này:
https://www.giaiphapexcel.com/diendan/threads/bài-6-range-cells.130603/
 
Lần chỉnh sửa cuối:
Cảm ơn bác befaint em đã dùng macro của bác để ráp lại cho file của em, em chạy thử trên file gốc (hơn 100k dòng) thì có 2 lỗi sau ah:
- Fill: L4:R4 bị paste bởi L3:R3
- Del: chỉ 2 low 4 và 5 được paste value, còn từ row 6 đi xuống vẫn còn nguyên các hàm.
Bác xem giúp.

Lỗi vì chạy Sub Del_for() mà Sub Fill_For() chưa chạy thì LRow = 0
Có một biến thế thì không cần khai báo toàn cục. Nếu khai báo thế thì phải có bước xác định được LRow rồi mới thực hiện các sub kia.

PHP:
Option Explicit

Sub Fill_For()
    Application.ScreenUpdating = False
    Dim lRow As Long
'Lưu ý là phải hủy Filter thì kết quả mới đúng!'
    lRow = Sheet1.Range("A65000").End(xlUp).Row
    Sheet1.Range("L4:R" & lRow).FillDown
    Application.ScreenUpdating = True
End Sub

Sub Del_for()
    Dim lRow As Long
    lRow = Sheet1.Range("A65000").End(xlUp).Row
    Sheet1.Range("L5:R" & lRow).Value = Sheet1.Range("L5:R" & lRow).Value2
End Sub


Đọc thuộc tính End() ở bài này:
https://www.giaiphapexcel.com/diendan/threads/bài-6-range-cells.130603/
 
chạy thử trên file gốc (hơn 100k dòng) thì có 2 lỗi sau ah:
- Fill: L4:R4 bị paste bởi L3:R3
- Del: chỉ 2 low 4 và 5 được paste value, còn từ row 6 đi xuống vẫn còn nguyên các hàm.
Với file bài #1 có lỗi vậy không đã?
Chứ file gốc nào thì mình không biết đâu.
 
File gốc của em nặng quá, ko attached được.
Vì nếu file như #1, thì macro của file em chạy hoàn toàn OK bác ah.
Em đang ko biết có lẽ nào vì data quá nhiều mà nó bị sai như vậy.
Bác có gmail không, để e gửi qua đó bác xem giúp.

Với file bài #1 có lỗi vậy không đã?
Chứ file gốc nào thì mình không biết đâu.
 
Các bác giúp em với ah.
 
Web KT

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

Back
Top Bottom