Lỗi khi ấn delete 2 ô cạnh nhau

Liên hệ QC

thien0202

Thành viên mới
Tham gia
30/11/15
Bài viết
9
Được thích
0
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("G1:G65536")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target = "x" Then Target.Offset(, 1) = Now
If Target = "" Then Target.Offset(, 1) = ""
End If
End With

Mình có đoạn code như ở trên . Lúc sử dụng thì bình thường nhưng khi mình bôi đen 1 vùng thuộc 2 cột G và H ( ví dụ g5:h5 ) thì bị báo lỗi. Nhờ mọi người giúp đỡ.
 
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("G1:G65536")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target = "x" Then Target.Offset(, 1) = Now
If Target = "" Then Target.Offset(, 1) = ""
End If
End With

Mình có đoạn code như ở trên . Lúc sử dụng thì bình thường nhưng khi mình bôi đen 1 vùng thuộc 2 cột G và H ( ví dụ g5:h5 ) thì bị báo lỗi. Nhờ mọi người giúp đỡ.
Vậy bạn muốn giúp đỡ gì? giúp cho nó hết báo lỗi hay giúp cho nó tự động chạy đúng luôn khi chọn nguyên cột.
 
Mục đích là mình muốn khi đánh x và 1 ô nào trên cột G thì ô tương ứng bên cột H sẽ nhảy ra ngày tháng hiện tại. Code này thì đám ứng được điều đó nhưng có 1 lỗi nhỏ là khi nào muốn xóa 1 vùng như G5:H5 thì excel bị báo lỗi và đơ luôn. Mình muốn khắc phục lỗi đó
 
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("G1:G65536")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target = "x" Then Target.Offset(, 1) = Now
If Target = "" Then Target.Offset(, 1) = ""
End If
End With

Mình có đoạn code như ở trên . Lúc sử dụng thì bình thường nhưng khi mình bôi đen 1 vùng thuộc 2 cột G và H ( ví dụ g5:h5 ) thì bị báo lỗi. Nhờ mọi người giúp đỡ.
Thử áp dụng lại code dưới:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Selection.Columns.Count > 1 Then Exit Sub
If Target.Column = 7 And Target.Value = "x" Then
   Target.Offset(, 1) = Now
End If
End Sub
 
Lần chỉnh sửa cuối:
Nói chung trong các sự kiện change bạn cần sử dụng enableevents=false để tránh thủ tục bị gọi lại nhiều lần.
 
Thử áp dụng lại code dưới:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Selection.Columns.Count > 1 Then Exit Sub
If Target.Column = 7 And Target.Value = "x" Then
   Target.Offset(, 1) = Now
End If
End Sub

Cám ơn bạn nha .
thêm dòng lệnh "If Selection.Columns.Count > 1 Then Exit Sub" là giải quyết được vấn đề của mình rồi
 
Web KT

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

Back
Top Bottom