Mình thường làm việc Ins va Del các hàng, trong rất nhiều bảng tính trên 1 file. Mình muốn viêt 1 VB để làm chuyện đó. Mình vừa học Sach VBA cua Thầy Hướng, nên cũng viết được tạm dùng, nhưng khi cho người khác dùng, họ thấy lỗi quá trời. mình cố gắng sửa mà đành bó tay.
Mình up len GPE đẻ anh em tham khảo đoạn code của mình và sửa giứp nhưng yêu cầu có ghi trong file
VD như: Insert kết hợp Autofill mà không làm sai lệch hàm sum và Vlookup?
Delete thông minh hơn, không del hết bảng tính mà để lại 2 hay 3 dòng công thức mẫu đầu tiên?
File đính kèm ở dưới hoặc theo link nay:
http://www.megaupload.com/?d=W9QZ61ZR
Mình up len GPE đẻ anh em tham khảo đoạn code của mình và sửa giứp nhưng yêu cầu có ghi trong file
VD như: Insert kết hợp Autofill mà không làm sai lệch hàm sum và Vlookup?
Delete thông minh hơn, không del hết bảng tính mà để lại 2 hay 3 dòng công thức mẫu đầu tiên?
File đính kèm ở dưới hoặc theo link nay:
http://www.megaupload.com/?d=W9QZ61ZR
PHP:
'Delete hang tu vi tri ActiveCell tro xuong, vai luon giu lai 3 hang tren cung???'
'Luon giu lai 2 hoac 3 hang tren cung, khong biet lam???
'
Sub Del() 'Cai nay rat hay lay nhung khong ho tro ham vlookup, sum'
Dim Sel, BangTinh As Range
Dim Val As Single
On Error Resume Next
Set Sel = Selection 'Dat Sel la o ActiveCell'
BeDel = ActiveCell.Row 'BeginDel o bat dau del cho den duoi cung (hang bat dau)'
Set BangTinh = ActiveCell.CurrentRegion 'Chon vung BangTinh'
j = i + UBound(BangTinh.Value, 2) - 1
If j <= 2 Then 'Dieu kien nay minh phong doan, ko chinh xac, GPE giup minh lam chinh xac voi???'
MsgBox "Ban hay chon vao ban tinh can Insert"
Exit Sub
End If
BangTinh.Select 'Chon vung bang tinh'
FiDel = BangTinh.Row + UBound(BangTinh.Value, 1) - 1 'Hang Finsh Del (hang cuoi cung)'
Range(Cells(BeDel, 1), Cells(FiDel, 1)).Select 'Chon vung can Delete Row'
Selection.EntireRow.Delete 'Delete'
Sel.Select
End Sub
'Tu dong nhan dang Bang Tinh va Insert them hang, va AutoFill cong thuc'
Sub Ins()
Dim n, RowIns As Integer
Dim BangTinh As Range
On Error Resume Next 'Gap loi thi bo qua '
Set BangTinh = ActiveCell.CurrentRegion 'Chon toan bo bang tinh'
i = BangTinh.Column 'So cot cua ban tinh'
j = i + UBound(BangTinh.Value, 2) - 1 'So cot cua o cuoi cung cua bang tinh, Cai nay ko hay lam, GPE co cau lenh nao khac ko??? '
If j <= 2 Then 'Dieu kien nay minh phong doan, ko chinh xac, GPE giup minh lam chinh xac voi??? '
MsgBox "Ban hay chon vao ban tinh can Insert"
Exit Sub
End If
RowIns = InputBox("Nhap so hang Insert:")
If RowIns <= 0 Then Exit Sub 'Dieu kien loai tru loi nhap so lieu'
n = BangTinh.Row + UBound(BangTinh.Value, 1) - 1 'Hang cuoi cung cua Bang tinh'
Range(Cells(n + 1, i), Cells(n + RowIns, i)).Select
Selection.EntireRow.Insert 'Insert'
Range(Cells(n, i), Cells(n, j + 50)).AutoFill Destination:=Range(Cells(n, i), Cells(n + RowIns, j + 50)) 'AutoFill'
End Sub
File đính kèm
Lần chỉnh sửa cuối: