- Tham gia
- 13/6/06
- Bài viết
- 7,183
- Được thích
- 24,630
Tôi có viết đoạn code lập trình sự kiện. Yêu cầu từ ô B24 trở xuống theo hàng dọc, cứ có nội dung là tự động xuống 1 dòng, dòng đó mang đầy đủ nội dung trên. Nghe thì đơn giản nhưng thực hiện khá lằng nhằng (dễ bị lỗi và treo máy), tôi đã làm nhưng chưa được ưng ý vì code khá lằng nhằng.
Nhờ mọi người tư vấn, tối ưu code:
Nhờ mọi người tư vấn, tối ưu code:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim BaseCell As Range, BaseRow As Integer
On Error GoTo Thoat
Set BaseCell = Range("B24:B20000")
If Not Intersect(BaseCell, Target) Is Nothing And IsEmpty(Target) = False And IsEmpty(Target.Offset(0, -1)) = False Then
Rows(Target.Row).Copy
Rows(Target.Row + 1).Select
Selection.Insert Shift:=xlDown
Target.Offset(1, 0).ClearContents
Application.CutCopyMode = False
Target.Offset(1, 0).Select
Set Target = Range("A1")
Set BaseCell = Nothing
Exit Sub
End If
Thoat:
Set BaseCell = Nothing
End Sub