Hoàn thiện dùm em code tính toán

Liên hệ QC

ngh_khanh

Thành viên mới
Tham gia
14/2/11
Bài viết
45
Được thích
25
Em có đoạn code sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    On Error Resume Next
    If Not Intersect([B2:B1000], Target) Is Nothing Then
        With Range([A2], [A65535].End(xlUp))
            .Offset(, 2).Formula = "=RC[-2]*RC[-1]"
            .Offset(, 2).NumberFormat = "_(* #,##0_);_(* (#,##0);"""""
            .Offset(, 2).Value = .Offset(, 2).Value
        End With
    End If
End Sub
Không hiểu code vẫn chạy chưa được ưng ý.
AC xem và hoàn thiện dùm em nha!
 

File đính kèm

  • GPEb.rar
    10.7 KB · Đọc: 28
Thử với cái này xem thích hợp với bạn không?
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    On Error Resume Next
    If Not Intersect([B2:B1000], Target) Is Nothing And Target.Row > 1 Then
        With Range([A2], [A65535].End(xlUp))
            .Offset(, 2).Formula = "=RC[-2]*RC[-1]"
            .Offset(, 2).NumberFormat = "_(* #,##0_);_(* (#,##0);"""""
            .Offset(, 2).Value = .Offset(, 2).Value
        End With
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thử với cái này xem thích hợp với bạn không? Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False On Error GoTo LoiCT If Not Intersect([B2:B1000], Target) Is Nothing And Target.Count = 1 Then With Range([A2], [A65535].End(xlUp)) .Offset(, 2).Formula = "=RC[-2]*RC[-1]" .Offset(, 2).NumberFormat = "_(* #,##0_);_(* (#,##0);""""" .Offset(, 2).Value = .Offset(, 2).Value End With Else 9 End If eRR_: Exit Sub LoiCT: MsgBox Error, , Erl Resume eRR_ End Sub

Bác ơi, bác chỉnh lại đoạn code của bác trên dùm em nhé! Để vậy em thấy khó nhìn quá! Với lại đoạn dưới em thấy hơi khó hiểu ah?
 
Upvote 0
Em có đoạn code sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    On Error Resume Next
    If Not Intersect([B2:B1000], Target) Is Nothing Then
        With Range([A2], [A65535].End(xlUp))
            .Offset(, 2).Formula = "=RC[-2]*RC[-1]"
            .Offset(, 2).NumberFormat = "_(* #,##0_);_(* (#,##0);"""""
            .Offset(, 2).Value = .Offset(, 2).Value
        End With
    End If
End Sub
Không hiểu code vẫn chạy chưa được ưng ý.
AC xem và hoàn thiện dùm em nha!
Khi bạn xóa hết vùng dữ liệu chỉ chừa lại dòng tiêu đề thì Range([A2], [A65535].End(xlUp)) chính là ô A2 nên code sẽ điền công thức vào ô C2 gây ra lỗi #VALUE. Bạn sửa lại một chút là được:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    On Error Resume Next
    If Not Intersect([B2:B1000], Target) Is Nothing And [A65535].End(xlUp).Row <> 1 Then
        With Range([A2], [A65535].End(xlUp))
            .Offset(, 2).Formula = "=RC[-2]*RC[-1]"
            .Offset(, 2).NumberFormat = "_(* #,##0_);_(* (#,##0);"""""
            .Offset(, 2).Value = .Offset(, 2).Value
        End With
    End If
End Sub
 
Upvote 0
Web KT
Back
Top Bottom