Thêm row theo điều kiện

Liên hệ QC

Thien

Thành viên thường trực
Tham gia
23/6/06
Bài viết
352
Được thích
112
Dear all.

Nhờ viết hộ code thêm hàng theo điều kiện số thứ tự của các hàng trong cột B khác nhau thì thêm vào 1 dòng.

Ví dụ: Số thứ tự trong cột B (Hiện tại các dòng đều liền nhau.) là
UCHI-01/224
UCHI-01/224
(thêm vào đây 1 dòng)
UCHI-01/225
UCHI-01/225
(thêm vào đây 1 dòng)
UCHI-01/227

Tại dòng thêm vào dữ liệu Cột A&C giống dòng trên; Cột D thêm chữ "Phí"; Cột E thêm chữ "64"; cột G thêm chữ "7"

Thân.
 

File đính kèm

  • Hoi them dong.xls
    15.5 KB · Đọc: 30
Lần chỉnh sửa cuối:
Dear all.

Nhờ viết hộ code thêm hàng theo điều kiện số thứ tự của các hàng trong cột B khác nhau thì thêm vào 1 dòng.

Ví dụ: Số thứ tự trong cột B (Hiện tại các dòng đều liền nhau.) là
UCHI-01/224
UCHI-01/224
(thêm vào đây 1 dòng)
UCHI-01/225
UCHI-01/225
(thêm vào đây 1 dòng)
UCHI-01/227

Tại dòng thêm vào dữ liệu Cột A&C giống dòng trên; Cột D thêm chữ "Phí"; Cột E thêm chữ "64"; cột G thêm chữ "7"

Thân.

--------
He he
Đọc bài của bác em thấy giống giám đốc em gửi thư cho các nhân viên quá "Dear all"
và một số chỗ khác nữa...
Còn cách diễn đạt, em chậm hiểu quá nên chưa hình dung ra cách bác yêu cầu.
Bác có thể gửi một file exel lên và ghi yêu cầu trong đó được ko?
 
Upvote 0
Bạn tham khảo thử đoạn code sau, trước khi chạy thì chọn dữ liệu ở cột B muốn xử lý.
Mã:
Sub InsertRow()
    Dim rng As Range
    Set rng = Selection
    Dim i As Long
    For i = rng.Rows.Count To 2 Step -1
        If rng(i) <> rng(i - 1) Then
            Rows(rng(i).Row).Insert
            Cells(rng(i).Row, "A") = Cells(rng(i - 1).Row, "A")
            Cells(rng(i).Row, "C") = Cells(rng(i - 1).Row, "C")
            Cells(rng(i).Row, "D") = "Phi"
            Cells(rng(i).Row, "E") = "64"
            Cells(rng(i).Row, "G") = "7"
        End If
    Next
End Sub
 
Upvote 0
Dear all.

Nhờ viết hộ code thêm hàng theo điều kiện số thứ tự của các hàng trong cột B khác nhau thì thêm vào 1 dòng.

Ví dụ: Số thứ tự trong cột B (Hiện tại các dòng đều liền nhau.) là
UCHI-01/224
UCHI-01/224
(thêm vào đây 1 dòng)
UCHI-01/225
UCHI-01/225
(thêm vào đây 1 dòng)
UCHI-01/227

Tại dòng thêm vào dữ liệu Cột A&C giống dòng trên; Cột D thêm chữ "Phí"; Cột E thêm chữ "64"; cột G thêm chữ "7"

Thân.
Sao bạn không dùng SUBTOTAL ---> Tôi thấy dùng cái này nó ra đúng ý bạn luôn (chẳng cần công thức hay code gì cả)
 

File đính kèm

  • Subtotal.xls
    16.5 KB · Đọc: 36
Upvote 0
To ndu96081631

Cảm ơn bạn đã quan tâm. Nhưng yêu cầu của mình nhiều hơn thế. Bạn vui lòng xem file trong bài 1 nha.


To rollover79

Rất hay đã giải quyết được rùi. Nhưng còn việc tính tổng theo cột B như trong file ở bài 1 nữa. Bạn giúp mình nhen.

Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
To ndu96081631

Cảm ơn bạn đã quan tâm. Nhưng yêu cầu của mình nhiều hơn thế. Bạn vui lòng xem file trong bài 1 nha.


To rollover79

Rất hay đã giải quyết được rùi. Nhưng còn việc tính tổng theo cột B như trong file ở bài 1 nữa. Bạn giúp mình nhen.

Thân.
2 yêu cầu quan trọng nhất là chèn dòng và tính tổng thì đã làm xong, mấy chuyện còn lại có khó gì chứ (có thể làm bằng tay hoặc code) ---> Vô tư luôn
 
Upvote 0
2 yêu cầu quan trọng nhất là chèn dòng và tính tổng thì đã làm xong, mấy chuyện còn lại có khó gì chứ (có thể làm bằng tay hoặc code) ---> Vô tư luôn

Việc tính tổng ở cột H như trong file ở bài 1 bạn rollover79 chưa giúp mình giải quyết.

Thân.
 
Upvote 0
Xin lỗi vì tôi bận nên không giúp bạn ngay được. Bạn thử lại đoạn code này xem sao. Trước khi chạy code cần đứng ở ô đầu tiên có dữ liệu ở cột B.
Mã:
Sub InsertRow()
    Dim iCol As Long, iRow As Long
    Dim iRowTong As Long
    Dim Tong As Double
    iCol = ActiveCell.Column
    iRow = ActiveCell.Row
    Tong = 0
    iRowTong = iRow
    Do While Cells(iRow, iCol) <> ""
        Tong = Tong + Cells(iRow, "G")
        If Cells(iRow, iCol) <> Cells(iRow + 1, iCol) Then
            iRow = iRow + 1
            Rows(iRow).Insert
            Cells(iRow, "A") = Cells(iRow - 1, "A")
            Cells(iRowTong, "H") = Tong
            Cells(iRow, "C") = Cells(iRow - 1, "C")
            Cells(iRow, "D") = "Phi"
            Cells(iRow, "E") = "64"
            Cells(iRow, "G") = "7"
            Tong = 0
            iRowTong = iRow + 1
        End If
        iRow = iRow + 1
    Loop
End Sub
 
Upvote 0
Web KT
Back
Top Bottom