Dùng VBA để lấp đầy các ô trống trong 1 bảng dữ liệu cho trước. (1 người xem)

Liên hệ QC

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

70211119

Thành viên mới
Tham gia
10/10/12
Bài viết
27
Được thích
5
Em có 1file dữ liệu như vậy ạ. Dữ liệu thực thế khoảng 30.000 dòng.
E nhờ Anh/chị hướng dẫn code VBA để điền dữ liệu vào toàn bộ ô trống trong 1 cột tại vị trí con trỏ ạ.
Quy tắc là: giá trị ô trống là bằng giá trị ô bên trên liền kề ạ.
Vì máy tính cơ quan e hơi chậm nên for ... next chạy lâu quá ạ.
P.s: nếu có cách nào hay và nhẹ hơn VBA cũng mong xin Anh chị chỉ giáo ạ.
E chân thành cảm ơn./.
 

File đính kèm

Em có 1file dữ liệu như vậy ạ. Dữ liệu thực thế khoảng 30.000 dòng.
E nhờ Anh/chị hướng dẫn code VBA để điền dữ liệu vào toàn bộ ô trống trong 1 cột tại vị trí con trỏ ạ.
Quy tắc là: giá trị ô trống là bằng giá trị ô bên trên liền kề ạ.
Vì máy tính cơ quan e hơi chậm nên for ... next chạy lâu quá ạ.
P.s: nếu có cách nào hay và nhẹ hơn VBA cũng mong xin Anh chị chỉ giáo ạ.
E chân thành cảm ơn./.
Tiêu đề Sheet1 của bạn còn nhiều cột không hay chỉ có 3 cột?
Bạn cần nêu vấn đề cụ thể, vì điền vào cột A và B nó sẽ khác với điền vào tất cả các cột.

Nếu chỉ có 3 cột thì thử code sau (nếu nhiều hơn 3 cột tôi không đãm bảo).
Mã:
Sub DienVao_CellTrong()
    With Sheet1
        .Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Range("A1:B50000") = .Range("A1:B50000").Value
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Đặt vấn đề:
* Trong trang dữ liệu, (DL) ta thấy có cột C là có đủ DL
Như vậy khi con trỏ chuột ở bất kỳ dòng nào của cột A hay B ta đều trước tiên phải xác định vùng cần duyệt.
* Sau khi đã xác định được vùng duyệt, thì chuyện điền DL như trỡ bàn tay thôi

Vì trong trang DL của bạn, tiêu đề cột ở dòng 1 nên chuyện xác định ô đầu tiên cần duyệt là dễ thấy rõ!
Chuyện xác định ô cuối trong cột chọn có DL cũng không khó lắm.

* Để điền nhanh hơn so với quá trình vừa duyệt vừa điền lên vô những ô trống trong vùng duyệt, ta có thể khai báo thêm 1 mảng có chỉ số hàng bằng với số hàng trong cột cần điề DL để chứa DL kết quả; Sau đó ta áp xuống trang tính chỉ 1 lần cho nhanh hơn.

Chúc các bạn vui & tuần làm việc hiệu quả!
 
Upvote 0
Em cảm ơn m.n ạ.
Em làm được rồi, theo hướng là người dùng đã click chọn ô nào thì khi nhấn lệnh sẽ tự động chọn cột chứa ô đó.
Mã:
Sub dien_cell_trong()
    Dim col As Long
    col = Selection.Column
    Range(Cells(, col), Cells(40000, col)).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End Sub
Em chia sẻ lại cách e dùng ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom