thierry henry
Thành viên mới

- Tham gia
- 11/6/18
- Bài viết
- 49
- Được thích
- 4
dạ khi dòng cuối cùng có chứa dữ liệu của cột C cách dòng trống cuối cùng của bảng tính thì tự chèn thêm dòng . Em có xem trên youtube thì sẽ tự động chèn dòng khi dòng cuối chứa chữ tổng cộng nhưng đây thì khi mình nhập liệu tới dòng số 9 tức là dòng cuối có chứa dữ liệu , còn 1 dòng trống nữa là hết bảng tính thì tự chèn thêm dòng . xin các sư phụ chỉ giáoMình xin được phép dịch các câu bài viết của bạn sang tiếng Việt, nha:
"em có file chứa bảng tính từ A1 đến H10 , ": File của em có dữ liệu từ A1. . H10
"Khi dòng cuối chứa dữ liệu cách dòng trống cuối cùng": ???
. . . & không biết chèn đòng vào đâu là cái chắc!
dạ khi dòng cuối cùng có chứa dữ liệu của cột C cách dòng trống cuối cùng của bảng tính thì tự chèn thêm dòng . Em có xem trên youtube thì sẽ tự động chèn dòng khi dòng cuối chứa chữ tổng cộng nhưng đây thì khi mình nhập liệu tới dòng số 9 tức là dòng cuối có chứa dữ liệu , còn 1 dòng trống nữa là hết bảng tính thì tự chèn thêm dòng . xin các sư phụ chỉ giáo
Dạ thưa thầy ! ý tưởng của em là khi phát sinh dữ liệu tới đâu thì nó sẽ tự bao viền đến đó hoặc tự xác định dòng trống cuối cùng của bảng tính cách dòng dữ liệu cuối cùng của cột C là 1 dòng thì tự chèn thêm dòng . Mong thầy cho ý kiếnỞ phần hướng dẫn trong video có ô mang dữ liệu 'Tổng cộng:" làm chuẩn để thêm trên nó 1 dòng
Vậy bạn sẽ có gì để làm chuẩn hay chưa?
& hỏi luôn thể: Chuển đó đang ở cột nào?
Nếu như video bạn đưa thì bạn xem file, click vào ô A9 (dưới dòng dữ liệu cuối cùng).Dạ thưa thầy ! ý tưởng của em là khi phát sinh dữ liệu tới đâu thì nó sẽ tự bao viền đến đó hoặc tự xác định dòng trống cuối cùng của bảng tính cách dòng dữ liệu cuối cùng của cột C là 1 dòng thì tự chèn thêm dòng . Mong thầy cho ý kiến
Option Explicit
'code này kich hoat khi nhap du lieu vao cot C
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastCell As Range ' O cach duoi 2 dong
If Target.Count > 1 Or Target.Column <> 3 Then Exit Sub ' Neu côt C khong doi hay copy/paste nhieu o thi thoat ra
Set LastCell = Target.Offset(2, 0) 'kiem tra o cach duoi 2 dong
If LastCell.Borders(xlEdgeBottom).LineStyle <> 1 Then ' Neu o do khong co border duoi net lien
Range(Cells(Target.Row + 1, "A"), Cells(Target.Row + 1, "H")).Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove
End If
End Sub
dạ em cảm ơn các thầy . em đã tìm ra code . nhưng em cũng sẽ tham khảo tiếp thu ý kiến của các thầy .Vì bạn không có text ở dòng cuối, hay có mốc nào để xác định dòng cuối
Nên tôi giả sử dòng cuối là dòng cuối có border (ô có viền)
Như vậy giả sử dòng cuối là dòng 10, Khi nhập dữ liệu vào cột C dòng kế cuối (dòng 9), nó sẽ nhận diện ô C11 (cách 2 ô) là ô không có border, và insert giữa dòng 9 và 10
Nhập data vào cột C để xem sự thay đổi:
Code đặt trong sheet "NKN-X" module (không đặt trong general module)
PHP:Option Explicit 'code này kich hoat khi nhap du lieu vao cot C Private Sub Worksheet_Change(ByVal Target As Range) Dim LastCell As Range ' O cach duoi 2 dong If Target.Count > 1 Or Target.Column <> 3 Then Exit Sub ' Neu côt C khong doi hay copy/paste nhieu o thi thoat ra Set LastCell = Target.Offset(2, 0) 'kiem tra o cach duoi 2 dong If LastCell.Borders(xlEdgeBottom).LineStyle <> 1 Then ' Neu o do khong co border duoi net lien Range(Cells(Target.Row + 1, "A"), Cells(Target.Row + 1, "H")).Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove End If End Sub
Ớ thế ra bạn làm thủ công à, mỗi lần muốn chèn lại phải "nhấn nút"?.
Code của em đây ạ :
Sub chendong1()
kk, nên em cũng thôi kg tham gia nữa.Ớ thế ra bạn làm thủ công à, mỗi lần muốn chèn lại phải "nhấn nút"?
Có khác gì bạn insert dòng bằng tay đâu nhỉ?
Thớt muốn code thì cứ ghi macro cài này. Mọi người đều khỏekk, nên em cũng thôi kg tham gia nữa.
Ctrl + " + " và enter 2 lần còn lẹ hơn![]()