Xin giúp đỡ code VBA chèn thêm dòng

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Chào cả nhà.

Mình có bài toán như sau, mong mọi người giúp đỡ:
– Bảng dữ liệu ở cột A, B, C
– Số lượng dòng của mỗi 1 nhóm là cột I

Mình cần chèn thêm dòng vào sau mỗi 1 nhóm (cột A) để đủ số lượng cho trước (số lượng dòng cần thêm của mỗi nhóm là khác nhau).

7471

Cảm ơn mọi người.

Code dưới đây 1 phát ăn ngay, không cần trung gian.
Vùng H:K chỉ để kiểm tra, không liên quan đến code.
Vì mình không rõ sau khi insert thêm dòng, thì cột A bạn muốn để trống hay điền mã "section" vào.
Do đó mình đã giả định là có điền mã vào.
Nếu không thì bạn delete dòng đó đi (các dòng có chú thích "bo dong nay di, neu ban muon cot A trong")

Option Explicit
Sub insertDong()
Dim lr&, i&, j&, k&, c&, rng, res(1 To 100000, 1 To 3)
Const sodong = 54 ' xac dinh so dong tieu chuan tai day!
lr = Cells(Rows.Count, "A").End(xlUp).Row
rng = Range("A2:C" & lr).Value
c = sodong
For i = 2 To UBound(rng)
If rng(i, 1) = rng(i – 1, 1) Then
k = k + 1: c = c – 1
res(k, 1) = rng(i, 1): res(k, 2) = rng(i, 2): res(k, 3) = rng(i, 3)
Else
If c > 0 Then
For j = 1 To c
k = k + 1
res(k, 1) = rng(i – 1, 1) ' bo dong nay di, neu ban muon cot A trong
Next
End If
c = sodong
End If
Next

' bo cac dong nay di, neu ban muon cot A trong
'————————————————-
If c > 0 Then
For j = 1 To c
k = k + 1
res(k, 1) = rng(UBound(rng), 1) ' bo dong nay di, neu ban muon cot A trong
Next
End If
'————————————————-

Range("A2:C100000").ClearContents
Range("A2").Resize(k, 3).Value = res
End Sub

www.giaiphapexcel.com/diendan/threads/xin-gi%C3%BAp-%C4%91%E1%BB%A1-code-vba-ch%C3%A8n-th%C3%AAm-d%C3%B2ng.166190/

Kỹ năng giải quyết vấn đề hiệu quả
Khóa học SprinGO phù hợp

Kỹ năng giải quyết vấn đề hiệu quả

Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...

Xem khóa học
★★★★★ 5 ★ 1 👤 4 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm