Cách viết code VBA để chèn dòng động theo bảng tính?

Liên hệ QC

tiendungnst

Thành viên chính thức
Tham gia
9/7/07
Bài viết
87
Được thích
5
Chào GPE!
Nhờ các ACE diễn đàn hướng dẫn giúp cách viết VBA để chèn thêm dòng trong bảng tính đính kèm phía dưới của mình.
Theo cách viết của mình thì hiện nay lệnh chèn dòng sẽ là: Copy 03 dòng 12;13 và 14 và chèn vào dòng 40 bằng lệnh INSERT COPY CELL ( để có thể giữ nguyên công thức của dòng)

Có cách nào để thay đổi việc chèn dòng này luôn luôn được chèn vào dòng ngay phía trên của các dòng tổng hợp số liệu (các dòng có nhiều màu đấy ah)?
Nhờ các cao thủ chỉ thêm là có thể viết VBA như thế nào để COPY thêm các dòng mà không phải để 03 dòng trống phía trên cùng không ah?

Xin cảm ơn trước!
 
Lần chỉnh sửa cuối:
Mọi người giúp mình với... Mình tìm trên mạng nhưng vẫn chưa tìm thấy...Cao thủ giúp em với...
 
Upvote 0
hix...mình mới bắt đầu tìm hiểu nên cũng chưa rành lắm..."
THÊM DÒNG MỚI THEO SỐ LƯỢNG CHO TRƯỚC", gần giống với yêu cầu của em...nhưng...làm sao insert rồi nó copy cong thức xuống nhỉ??? (A1:j3 là mảng mẩu cần copy xuống, giống auto fill vậy ah...)
 
Upvote 0
hix...mình mới bắt đầu tìm hiểu nên cũng chưa rành lắm..."
THÊM DÒNG MỚI THEO SỐ LƯỢNG CHO TRƯỚC", gần giống với yêu cầu của em...nhưng...làm sao insert rồi nó copy cong thức xuống nhỉ??? (A1:j3 là mảng mẩu cần copy xuống, giống auto fill vậy ah...)


Chèn dòng thì chỉ thế này thôi.
PHP:
Sub chendong()
ActiveCell.Resize([A1]).EntireRow.Insert
End Sub
Hoăc là thế này. Hên xui nha.
PHP:
Sub chendong()
With ActiveCell
    .EntireRow.Copy
    .Resize([A1]).EntireRow.Insert
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Chèn dòng thì chỉ thế này thôi.
PHP:
Sub chendong()
ActiveCell.Resize([A1]).EntireRow.Insert
End Sub
Hoăc là thế này. Hên xui nha.
PHP:
Sub chendong()
With ActiveCell
    .EntireRow.Copy
    .Resize([A1]).EntireRow.Insert
End With
End Sub

chèn và copy công thức (A1:J3) xuống theo. và tự động chèn theo số liệu có sẳn. (Ví dụ tại A2 có số liệu là 10, thì tự động chèn 10 mảng (A1:J3)
 
Upvote 0
chèn và copy công thức (A1:J3) xuống theo. và tự động chèn theo số liệu có sẳn. (Ví dụ tại A2 có số liệu là 10, thì tự động chèn 10 mảng (A1:J3)
Muốn có đáp án đúng thì đưa file lên, rồi cho kết quả tạm. Đoán hoài cũng ngán lắm.
 
Upvote 0
hướng dẫn mình cách chèn thêm 2 dòng ở vị trí định trước như sau dòng i=145, tiếp theo chèn thêm 2 dòng vị trí i=i-7=137......
 

File đính kèm

  • chen dong.xlsx
    48.9 KB · Đọc: 45
Upvote 0
Hình như người ta muốn chèn 1 lần 2 dòng mà. Hí hí

Thấy bảng người ta chèn sẵn, chắc là cái kết quả đó mà........nên cứ thế mà làm!híhí--=0--=0--=0--=0--=0

Chèn 2 dòng thì sửa lại vậy
[GPECODE=vb]
Sub chendong()
Dim i As Long
For i = 1 To 145 Step 8
Sheet2.Range("A" & i, "A" & i + 1).EntireRow.Insert
Next i
End Sub
[/GPECODE]
 
Lần chỉnh sửa cuối:
Upvote 0
không được bạn ơi
làm sao cho excel hiểu được là mình muốn chèn 2 dòng vào vịt trí dòng "no fill"< không tô màu> không nhỉ ? do bảng dữ liệu của mình rất dài đến 2000 dòng và nếu insert từ dòng vào vị trí mình muốn thì mình thấy mình hơi bị ngu quá hjj
CHEN DONG.jpg
 

File đính kèm

  • chen dong.xlsx
    48.9 KB · Đọc: 38
Upvote 0
Đây là macro chèn 2 dòng sau những ô ở cột [A:A] có số liệu hay công thức cho ra số:
PHP:
Option Explicit
Sub Macro1()
 Dim Rng As Range, Rws&, J&
 Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 1)
 Set Rng = Union(Rng, Columns("A:A").SpecialCells(xlCellTypeFormulas, 1))
 For J = Rng.CurrentRegion.Rows.Count To 1 Step -1
    If Not Intersect(Rng, Cells(J, "A")) Is Nothing Then
        Rows(J + 1 & ":" & J + 2).Insert Shift:=xlDown
    End If
 Next J
End Sub

Còn chuyện chèn dòng vô những dòng chưa tô màu thì chờ chút!

& đây, xin mời so sánh nha:

PHP:
Option Explicit
Sub Macro1()
 Dim Rng As Range, Rws&, J&
 
 Set Rng = Columns("B:B").SpecialCells(xlCellTypeBlanks)
 For J = Rng.CurrentRegion.Rows.Count To 1 Step -1
    If Not Intersect(Cells(J, "B"), Rng) Is Nothing Then
        Rows(J + 1 & ":" & J + 2).Insert Shift:=xlDown
    End If
 Next J
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
cho mình hỏi , muốn gán giá trị tại cells chỉ định trước vào macro như thế nào vậy các bạn
VD ở dòng 3" step 8" nhưng mình muốn thay số 8 bằng 1 số trên 1 cells để người dùng có thể gán vào số khác số 8
Sub chendong()
Dim i As Long
For i = 1 To 145 Step 8
Sheet2.Range("A" & i).EntireRow.Insert
Next i
End Sub

 
Upvote 0
cho mình hỏi , muốn gán giá trị tại cells chỉ định trước vào macro như thế nào vậy các bạn
VD ở dòng 3" step 8" nhưng mình muốn thay số 8 bằng 1 số trên 1 cells để người dùng có thể gán vào số khác số 8
Sub chendong()
Dim i As Long
For i = 1 To 145 Step 8
Sheet2.Range("A" & i).EntireRow.Insert
Next i
End Sub

Nó sẽ như thế này nè (Ví dụ muốn gõ vào cell A1 ):
Mã:
Sub chendong()  
    Dim i As Long
    For i = 1 To 145 Step Sheet2.[A1]
       Sheet2.Range("A" & i).EntireRow.Insert
    Next i
End Sub
 
Upvote 0
Em có 1 bảng tính A gồm 5 dòng để lấy dữ liệu từ một bảng B. Giả sử bảng B có hơn 5 dữ liệu thì bảng A bị thiếu. Vậy em nhờ anh chị cao thủ viết dùm code: Nếu dữ liệu bảng B nhiều hơn số dòng ở bảng A là n thì bảng A tự động thêm n dòng. Xin cám ơn trước.
 

File đính kèm

  • kha.xls
    18 KB · Đọc: 15
Upvote 0
Mình làm theo cách ẩn dòng trống

Bạn tham khảo theo file!
 

File đính kèm

  • gpeGiaoDuc.rar
    14 KB · Đọc: 113
Upvote 0
Cám ơn SA_DQ, làm và tìm TKB 10 tiết/ngày thì dễ rồi, em làm rồi ngon lắm. Nhưng hao giấy quá, yêu cầu đặt ra là LBG mỗi tuần chỉ 1/2 trang A4 (gọn-đẹp và đủ chỗ dán). Vì vậy phải hạn chế, thực tế thì trường em không ai dạy hết 10t/ngày cả. Nên em không muốn dòng trống nhiều. Anh và các cao thủ giúp!
 
Upvote 0
Vậy thì thử cái ni; Nỏ mô dòng trống chi hết!
 

File đính kèm

  • gpeGiaoDuc.rar
    14 KB · Đọc: 119
Upvote 0
Web KT
Back
Top Bottom