Lỗi không chạy macro khi range thay đổi bằng Private Sub Worksheet_Change(...

Liên hệ QC

hoangtrong_vbnd

Thành viên hoạt động
Tham gia
14/1/11
Bài viết
156
Được thích
7
Giới tính
Nam
Nhờ các bác chỉ dùm chỗ sai và cần sửa như thế nào đối với cách dùng private
Khi e dùng như dưới - thay đổi giá trị tại ô B4 thì chạy macro (nhưng không chạy)
và để sang cách dùng truyền thống module - button thì chạy bình thường.
E ko hiểu là sai chỗ nào và sửa như nào
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Not Intersect(Target, [B4]) Is Nothing Then
Range("C9").Formula = "=SUMIFS(NOCT,$B$4,COCT,B9,TIEN)"
Range("D9").Formula = "=SUMIFS(NOCT,$B$4,COCT,B9,TIEN)"
Range("E9").Formula = "=IF(SUM(C9:D9)<>0,1,0)"
Dim rng As Range
Set rng = Range("C9:E358")rng.AutoFilterRange("C9:E9").Copy rng
rng.Value = rng.Value
Set rng = rng.Resize(rng.Rows.Count + 1).Offset(-1)
rng.AutoFilter 3, 1
rng.Columns(3).Hidden = True
Set rng = Nothing
End if
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Nhờ các bác chỉ dùm chỗ sai và cần sửa như thế nào đối với cách dùng private
Khi e dùng như dưới - thay đổi giá trị tại ô B4 thì chạy macro (nhưng không chạy)
và để sang cách dùng truyền thống module - button thì chạy bình thường.
E ko hiểu là sai chỗ nào và sửa như nào
Có thể do bạn đặt code không đúng trong sheet. Nếu nghi ngờ thì kiểm tra từng phần.
Thử thế này xem khi gõ cái gì đó vào B4. Nếu có xuất hiện thông báo Ok thì code hoạt động.
Khi nghi ngờ gì đó thì luôn dùng MsgBox để kiểm tra
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Not Intersect(Target, [B4]) Is Nothing Then
   MsgBox "Ok"
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 
Upvote 0
cho em hỏi là vì sao private sub em cũng không chạy được ạ. em muốn lọc theo kí tự của c15 ạ. mà không tự động chạy được ạ
1597899491021.png
 
Upvote 0
Theo như cái hình của bạn thì NHAPHANG là một ActiveX Control trên sheet NHAPHANG chứ không phải sheet NHAPHANG. Và sự kiện Change của ActiveX Control không có tham số.
Bạn nên nghiên cứu kiến thức VBA căn bản trước khi chỉnh sửa bất cứ thứ gì.
 
Upvote 0
Web KT

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

Back
Top Bottom