Cho em hỏi đoạn code này bị lỗi gì (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thanhlong68

Thành viên chính thức
Tham gia
17/11/12
Bài viết
66
Được thích
2
Đoạn code này em không lưu được vào trong ví dụ, không hiểu sao nó không cho lưu, nên em đánh post lên đây nhờ mọi người xem giùm
Khi dán đoạn code này vào sheet 1 thì gõ số bất kỳ vào cột A nó sẽ nhảy lên toàn số 0 ở dưới rất khó chịu. Em mong mọi người sửa và chỉ giúp em chỗ sai với
(đoạn Code này của thầy Ba Tê đã giúp em lập lên cách đây vài ngày)
PHP:
    Private Sub  Worksheet_Change(ByVal Target As Range)    
Application.EnableEvents = False    
On Error Resume Next    
Dim Cll As Range    
If Target.Column = 7 And  Target.Rows.Count = 1 And Target.Offset(, -1) <> "" Then         
For Each Cll In Target.Offset(1).Resize(1000)
             If Cll.Offset(, -1) = "" And Cll.Offset(, 1) <>  "" Then
                Cll.Value = Cll.Offset(, 1).Value  * Target
             Else
                Exit For
             End If
         Next
    End If
    Application.EnableEvents = True
    End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Đoạn code này em không lưu được vào trong ví dụ, không hiểu sao nó không cho lưu, nên em đánh post lên đây nhờ mọi người xem giùm
Khi dán đoạn code này vào sheet 1 thì gõ số bất kỳ vào cột A nó sẽ nhảy lên toàn số 0 ở dưới rất khó chịu. Em mong mọi người sửa và chỉ giúp em chỗ sai với
(đoạn Code này của thầy Ba Tê đã giúp em lập lên cách đây vài ngày)
PHP:
    Private Sub  Worksheet_Change(ByVal Target As Range)    
Application.EnableEvents = False    
On Error Resume Next    
Dim Cll As Range    
If Target.Column = 7 And  Target.Rows.Count = 1 And Target.Offset(, -1) <> "" Then         
For Each Cll In Target.Offset(1).Resize(1000)
             If Cll.Offset(, -1) = "" And Cll.Offset(, 1) <>  "" Then
                Cll.Value = Cll.Offset(, 1).Value  * Target
             Else
                Exit For
             End If
         Next
    End If
    Application.EnableEvents = True
    End Sub
Bạn sửa lại code như vầy (tách câu lệnh IF ngoài cùng thành 2 câu lệnh IF lồng nhau, như vậy sẽ logic hơn):
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    On Error Resume Next
    Dim Cll As Range
    [COLOR=#ff0000]If Target.Column = 7 And Target.Count = 1 Then[/COLOR]
        [COLOR=#ff0000]If Target.Offset(, -1) <> "" Then[/COLOR]
            For Each Cll In Target.Offset(1).Resize(1000)
                If Cll.Offset(, -1) = "" And Cll.Offset(, 1) <> "" Then
                    Cll.Value = Cll.Offset(, 1).Value * Target
                Else
                    Exit For
                End If
            Next
        End If
    End If
    Application.EnableEvents = True
End Sub
 
Upvote 0
Bạn sửa lại code như vầy (tách câu lệnh IF ngoài cùng thành 2 câu lệnh IF lồng nhau, như vậy sẽ logic hơn):
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    On Error Resume Next
    Dim Cll As Range
    [COLOR=#ff0000]If Target.Column = 7 And Target.Count = 1 Then[/COLOR]
        [COLOR=#ff0000]If Target.Offset(, -1) <> "" Then[/COLOR]
            For Each Cll In Target.Offset(1).Resize(1000)
                If Cll.Offset(, -1) = "" And Cll.Offset(, 1) <> "" Then
                    Cll.Value = Cll.Offset(, 1).Value * Target
                Else
                    Exit For
                End If
            Next
        End If
    End If
    Application.EnableEvents = True
End Sub
Cám ơn anh đã sửa giùm em. Em chạy đã thấy ok rồi
 
Upvote 0

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

Back
Top Bottom