Làm thế nào để chèn 2 dòng trống sau 5 dòng

Liên hệ QC

BinhCan997

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
8/10/21
Bài viết
10
Được thích
-1
Chào các bạn. Mình cần 1 mã code để chạy tự động chèn thêm 2 dòng trống sau 5 dòng ( Không phân biệt ô đó có dữ liệu hay không có dữ liệu ). Hiện tại mình chỉ biết cách chèn thủ công. Nên không biết viết code. Nhờ anh chị diễn đàn giúp. Xin cảm ơn

1634128138008.png
 
Lần chỉnh sửa cuối:
Giải pháp
(2) Số 5 đó minh họa thôi bạn. Mình chỉ muốn đơn giản từ dòng 1 đến dòng 1000 chẳng hạn. Thì cứ 5 dòng chèn 2 dòng trống
(1) Cảm ơn mọi người mình đã làm xong !
(1) Chúc mừng bạn nhiều nha!
(2) Có 1 cách duyệt từ dòng 1 cho đến dòng cuối
2.0 Xác định dòng cuối & ấn nó vô tham biến Rws;
2.1 Khai báo biến mảng có số dòng là 120% Rws
2.3 Tạo vòng lặp duyệt từ dòng đầu đến Rws;
Trong khi duyệt, nếu chỉ số dòng <> 5 (không chia hết cho 5) thì ghi dữ liệu của dòng vô mảng;
Khi gặp dòng chia hết cho 5 thì:
a./ Cũng ghi dữ liệu như 4 dòng trên
b./ Tăng chỉ số của biến mảng lên 2 dòng
& cứ thế tiếp cho đến hết dữ liệu
2.4 'Đập' (phương ngữ GPE.COM) lên trang tính dữ liệu có trong mảng

[Viết cho những ai quan tâm thêm 1...
Bạn phải trãi qua các bước sau:
1./ Đưa cột A:A có dữ liệu vô tham biến
2./ Tìm những ô có chứa con số '5'
3./ Ô tìm thấy ta chọn 2 dòng & thêm dòng thôi

Chúc bạn thành công!
 
Upvote 0
Bạn phải trãi qua các bước sau:
1./ Đưa cột A:A có dữ liệu vô tham biến
2./ Tìm những ô có chứa con số '5'
3./ Ô tìm thấy ta chọn 2 dòng & thêm dòng thôi

Chúc bạn thành công!
Số 5 đó minh họa thôi bạn. Mình chỉ muốn đơn giản từ dòng 1 đến dòng 1000 chẳng hạn. Thì cứ 5 dòng chèn 2 dòng trống
1634127978749.png
Bài đã được tự động gộp:

Cảm ơn mọi người mình đã làm xong !
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn phải trãi qua các bước sau:
1./ Đưa cột A:A có dữ liệu vô tham biến
2./ Tìm những ô có chứa con số '5'
3./ Ô tìm thấy ta chọn 2 dòng & thêm dòng thôi

Chúc bạn thành công!
51, 52, 53, 54 đều chứa số '5'.
Bài này làm tuỳ theo chèn dòng mà có lẫn mẫu mã tô đậm tô màu tùm lum hay không.

Nếu không thì tương đối nhanh:
- đọc dữ liệu vào 1 mảng với số dòng là sd1
- lập mọt mảng mới với số dòng sd2 = Fix(sd1*7/5 + 0.5)
- chép tuần tự bên mảng 1 sang mảng 2, cứ 5 dòng thì bên 2 nhảy thêm 2.
- chép mảng 2 trở vào sheet

Nếu có thì tương đối giản dị nhưng chậm:
- đọc ngược range từ dưới lên, kể từ dòng cuối cùngn chia chẵn cho 5. Bước 5.
- thêm 2 dòng

thành công: hổng dám đâu. Bạn quên mất người quen này rồi à?
 
Lần chỉnh sửa cuối:
Upvote 0
Số 5 đó minh họa thôi bạn. Mình chỉ muốn đơn giản từ dòng 1 đến dòng 1000 chẳng hạn. Thì cứ 5 dòng chèn 2 dòng trống
View attachment 267681
Bài đã được tự động gộp:

Cảm ơn mọi người mình đã làm xong !
Ban thử code này coi. Nhớ ấn 1 lần thôi nhé
Mã:
Sub Insert_Dong()
Dim i&, iR&, jI&
With ActiveSheet
iR = ActiveSheet.Range("A" & Rows.Count).End(3).Row
    j = -2
    For i = 1 To iR Step 5
        j = j + 7
        .Rows(j + 1).Insert xlDown, xlFormatFromLeftOrAbove
        .Rows(j + 2).Insert xlDown, xlFormatFromLeftOrAbove
    Next
End With
End Sub
 
Upvote 0
Ban thử code này coi. Nhớ ấn 1 lần thôi nhé
Mã:
Sub Insert_Dong()
Dim i&, iR&, jI&
With ActiveSheet
iR = ActiveSheet.Range("A" & Rows.Count).End(3).Row
    j = -2
    For i = 1 To iR Step 5
        j = j + 7
        .Rows(j + 1).Insert xlDown, xlFormatFromLeftOrAbove
        .Rows(j + 2).Insert xlDown, xlFormatFromLeftOrAbove
    Next
End With
End Sub

Tôi chỉ ngược lại bạn luôn nè

Sub Test()
Dim i As Long
For i = 10001 To 5 Step -5
Rows(i).Resize(2).Insert
Next i
End Sub
 
Upvote 0
Ok ok. Haha. Ghi nhận. Em xin ghi nhận
Chỉ tiếp. Nếu muốn không ảnh hưởng công thức, dữ liệu vùng xung quanh. vì sự ảnh hưởng khi ta chèn dòng

Mã:
Sub test()
   Dim i As Long
   For i = 10001 To 5 Step -5
     Cells(i, 1).Resize(2).Insert xlShiftDown
   Next i
End Sub
 
Upvote 0
Cũng đề bài này mà nâng cấp 1 chút.VD chèn số dòng trống (bằng Input box) sau số dòng( bằng Input box). VD mình nhập 4, rồi 6: tức là chèn 4 dòng trống sau 6 dòng..........kiểu như vậy thì code thế nào các huynh.
 
Upvote 0
(2) Số 5 đó minh họa thôi bạn. Mình chỉ muốn đơn giản từ dòng 1 đến dòng 1000 chẳng hạn. Thì cứ 5 dòng chèn 2 dòng trống
(1) Cảm ơn mọi người mình đã làm xong !
(1) Chúc mừng bạn nhiều nha!
(2) Có 1 cách duyệt từ dòng 1 cho đến dòng cuối
2.0 Xác định dòng cuối & ấn nó vô tham biến Rws;
2.1 Khai báo biến mảng có số dòng là 120% Rws
2.3 Tạo vòng lặp duyệt từ dòng đầu đến Rws;
Trong khi duyệt, nếu chỉ số dòng <> 5 (không chia hết cho 5) thì ghi dữ liệu của dòng vô mảng;
Khi gặp dòng chia hết cho 5 thì:
a./ Cũng ghi dữ liệu như 4 dòng trên
b./ Tăng chỉ số của biến mảng lên 2 dòng
& cứ thế tiếp cho đến hết dữ liệu
2.4 'Đập' (phương ngữ GPE.COM) lên trang tính dữ liệu có trong mảng

[Viết cho những ai quan tâm thêm 1 tham khảo lúc rỗi!]
 
Upvote 0
Giải pháp
Chỉ tiếp. Nếu muốn không ảnh hưởng công thức, dữ liệu vùng xung quanh. vì sự ảnh hưởng khi ta chèn dòng

Mã:
Sub test()
   Dim i As Long
   For i = 10001 To 5 Step -5
     Cells(i, 1).Resize(2).Insert xlShiftDown
   Next i
End Sub
Code này hơi bị dỏm ở chỗ là for i = 1001 nếu nó là 2000 hay 3000 phải sửa lại à
Cho bác code này nè, ngon lành hơn nhiều

Sub chen_dong_trong()
Dim ar(), i As Integer, k As Integer, kq(), j As Integer
ar = Range("A1").CurrentRegion.Value
ReDim kq(1 To UBound(ar) + (Int(UBound(ar) / 5) + 1) * 2, 1 To UBound(ar, 2))
For i = 1 To UBound(ar)
k = k + 1
For j = 1 To UBound(ar, 2)
kq(k, j) = ar(i, j)
Next
If i Mod 5 = 0 Then k = k + 2
Next
Range("A1").Resize(UBound(kq), UBound(kq, 2)) = kq
End Sub
 
Upvote 0
Con có biết gì đâu. Anh ấy chỉ lại là tốt rồi. Cái nào hay. Thì còn chắt lọc để học cũng được mà chú
Thớt là dân chuyên Xê Cọng Cọng. Cho nên chỉ thích những code gọn nhẹ.
Toi chỉ chả hiểu tại sao tự xưng dân xịn Xê Cọng Cọng mà không thấy chút hiểu biết nào về test biên trị (boundary test).

(*1) dân viết các lớp (classes) cho Xê cọng cọng luôn phải sử dụng tối thiểu 2 loại tests: boudary test và unit test.
 
Upvote 0
Cũng đề bài này mà nâng cấp 1 chút.VD chèn số dòng trống (bằng Input box) sau số dòng( bằng Input box). VD mình nhập 4, rồi 6: tức là chèn 4 dòng trống sau 6 dòng..........kiểu như vậy thì code thế nào các huynh.
PHP:
Sub ThemDongTheoYeuCau()
 Dim SoDgThem As Byte, KC As Integer, Rws As Long, Col As Integer
 Dim J As Long, W As Long, Hg As Integer, Cot As Integer
 
 Rws = [B2].CurrentRegion.Rows.Count
 Col = [B2].CurrentRegion.Columns.Count
 SoDgThem = InputBox("Sô Dòng Thêm:", "GPE.COM", 3)
 KC = InputBox("Khoang Cách Dòng:", "GPE.COM", 7)
 If SoDgThem < 3 Or SoDgThem > 6 Then SoDgThem = 3
 If KC < 7 Or KC > 9 Then KC = 7
 ReDim Arr(1 To 9 * Rws, 1 To Col)
 For J = 2 To Rws Step KC
    For Hg = 1 To KC
        W = W + 1
        For Cot = 1 To Col
            Arr(W, Cot) = Cells(J + Hg - 1, Cot).Value
        Next Cot
    Next Hg
    W = W + SoDgThem
 Next J
 Cells(2, Col + 2).Resize(W, Col).Value = Arr()
End Sub
 
Upvote 0
Code này hơi bị dỏm ở chỗ là for i = 1001 nếu nó là 2000 hay 3000 phải sửa lại à
Cho bác code này nè, ngon lành hơn nhiều

Sub chen_dong_trong()
Dim ar(), i As Integer, k As Integer, kq(), j As Integer
ar = Range("A1").CurrentRegion.Value
ReDim kq(1 To UBound(ar) + (Int(UBound(ar) / 5) + 1) * 2, 1 To UBound(ar, 2))
For i = 1 To UBound(ar)
k = k + 1
For j = 1 To UBound(ar, 2)
kq(k, j) = ar(i, j)
Next
If i Mod 5 = 0 Then k = k + 2
Next
Range("A1").Resize(UBound(kq), UBound(kq, 2)) = kq
End Sub
Hơi ngạo nghễ nha em. trình độ còn Non và xanh lắm em trai. Ví dụ dữ liệu như thế này thì cứ 5 dòng cách 2 dòng có được không? Cần tìm kiểu kỳ trước khi phát biểu nha em.

1634135666876.png
 
Upvote 0
Hơi ngạo nghễ nha em. trình độ còn Non và xanh lắm em trai. Ví dụ dữ liệu như thế này thì cứ 5 dòng cách 2 dòng có được không? Cần tìm kiểu kỳ trước khi phát biểu nha em.

View attachment 267688
Em biết lỗi rồi, em chỉ là hạt cát trong sa mạc, giọt nước giữa đại dương mênh mông thôi........Xin kính cẩn nghiêng mình đứng nép 1 bên để lắng nghe và học hỏi.
 
Upvote 0
Con có biết gì đâu. Anh ấy chỉ lại là tốt rồi. Cái nào hay. Thì còn chắt lọc để học cũng được mà chú
Nick VetBikini đó đã bị Bank Nick 1 tháng rồi. Vì tội Hỗn láo với nhiều thành viên. bạn không nên trách nick đó làm gì. Riêng mình thì bài viết của Thành viên VetBikini mình coi như rác đổ đi. Nên không bao giờ quan tâm câu trả lời của thành viên này
 
Upvote 0
....Xin kính cẩn nghiêng mình đứng nép 1 bên để lắng nghe và học hỏi.
.... Thì còn chắt lọc để học cũng được mà chú
Đói với dân đòi lấy tiền 200 đô Mỹ một tiết dạy Xê Cọng Cọng thì bạn nghĩ là bạn có thể học phơ-ri à?

Theo tôi thì cái đáng học ở bài này là: làm sao nhìn bài #1 hì biết ngay là 'người quen'?
Làm được điều này, bạn học được kỹ năng thống kê và phỏng đoán theo dạng 'pattern recognition'

Gợi ý: pattern số 1 là cứ khoảng 1 tháng thì đăng ký 1 cái tên mới. Đăng bài hỏi, nhưng cái bổn tánh hung hăng không chừa cho nên chỉ mọt thời gian ngắn là gây hết mọt số đông. Dẫu không bị ban của ban đỏ thì cũng bị bà con GPE tẩy chay. Tên ấy hết công dụng, trở lại 'pattern' đăng tên mới.
 
Upvote 0
Em biết lỗi rồi, em chỉ là hạt cát trong sa mạc, giọt nước giữa đại dương mênh mông thôi........Xin kính cẩn nghiêng mình đứng nép 1 bên để lắng nghe và học hỏi.

Đói với dân đòi lấy tiền 200 đô Mỹ một tiết dạy Xê Cọng Cọng thì bạn nghĩ là bạn có thể học phơ-ri à?

Theo tôi thì cái đáng học ở bài này là: làm sao nhìn bài #1 hì biết ngay là 'người quen'?
Làm được điều này, bạn học được kỹ năng thống kê và phỏng đoán theo dạng 'pattern recognition'

Gợi ý: pattern số 1 là cứ khoảng 1 tháng thì đăng ký 1 cái tên mới. Đăng bài hỏi, nhưng cái bổn tánh hung hăng không chừa cho nên chỉ mọt thời gian ngắn là gây hết mọt số đông. Dẫu không bị ban của ban đỏ thì cũng bị bà con GPE tẩy chay. Tên ấy hết công dụng, trở lại 'pattern' đăng tên mới.

Đói với dân đòi lấy tiền 200 đô Mỹ một tiết dạy Xê Cọng Cọng thì bạn nghĩ là bạn có thể học phơ-ri à?

Theo tôi thì cái đáng học ở bài này là: làm sao nhìn bài #1 hì biết ngay là 'người quen'?
Làm được điều này, bạn học được kỹ năng thống kê và phỏng đoán theo dạng 'pattern recognition'

Gợi ý: pattern số 1 là cứ khoảng 1 tháng thì đăng ký 1 cái tên mới. Đăng bài hỏi, nhưng cái bổn tánh hung hăng không chừa cho nên chỉ mọt thời gian ngắn là gây hết mọt số đông. Dẫu không bị ban của ban đỏ thì cũng bị bà con GPE tẩy chay. Tên ấy hết công dụng, trở lại 'pattern' đăng tên mới.
Thành viên đã từng bị ban Nick 1 tháng vì tội hỗn Láo. Già rồi mà Láo. Bị ban nick 1 tháng chưa chừa cái tật nói nhiều à.
 
Upvote 0
Web KT

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

Back
Top Bottom