Worksheet_Change không tự động thực hiện khi giá trị ô thay đổi

Liên hệ QC

baihocdt

Thành viên hoạt động
Tham gia
1/2/11
Bài viết
106
Được thích
11
Chào các bạn, mình có nhu cầu gọi thực hiện hàm Worksheet_Change khi giá trị của ô trong ô B22 đến D22 thay đổi giá trị.
Khi nào giá trị của các ô này thay đổi thì sẽ hiện thông báo "dữ liệu đã bị thay đổi !"
Tuy nhiên khi mình cho thay đổi giá trị của các ô thì hàm Worksheet_Change vẫn không được gọi thực hiện.
Rất mong các bạn xem file đính kèm xử lý giúp.
 

File đính kèm

  • Tieuchi.xlsm
    15.4 KB · Đọc: 4
Bạn chép code đã làm lên đây xem nào. Không có máy tính nên không xem file được á.
 
Upvote 0
Chào các bạn, mình có nhu cầu gọi thực hiện hàm Worksheet_Change khi giá trị của ô trong ô B22 đến D22 thay đổi giá trị.
Khi nào giá trị của các ô này thay đổi thì sẽ hiện thông báo "dữ liệu đã bị thay đổi !"
Tuy nhiên khi mình cho thay đổi giá trị của các ô thì hàm Worksheet_Change vẫn không được gọi thực hiện.
Rất mong các bạn xem file đính kèm xử lý giúp.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B22:D22"), Range(Target.Address)) Is Nothing Then
    MsgBox " Du lieu da bi thay doi !"
End If
End Sub
B22 đến D22 thay đổi do công thức, không "kích" được.
Bạn chọn B2 đến D21 xem sao.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:D21")) Is Nothing Then
    MsgBox " Du lieu da bi thay doi !"
End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn chép code đã làm lên đây xem nào. Không có máy tính nên không xem file được á.
Dạ đoạn code đây ạ:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B22: D22"), Range(Target.Address)) Is Nothing Then
MsgBox " Du lieu da bi thay doi !"
End If

End Sub
Bài đã được tự động gộp:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B22:D22"), Range(Target.Address)) Is Nothing Then
    MsgBox " Du lieu da bi thay doi !"
End If
End Sub
B22 đến D22 thay đổi do công thức, không "kích" được.
Bạn chọn B2 đến D21 xem sao.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:D21")) Is Nothing Then
    MsgBox " Du lieu da bi thay doi !"
End If
End Sub
Dạ, Mình có cách nào khác mà vẫn giữ nguyên vùng từ "B22: D22" không ạ. Tại vì cái file thực tế của mình thì vùng tương tự như "B2: D21" là nó nằm rải rác ở các sheet khác tổng hợp lại.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ đoạn code đây ạ:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B22: D22"), Range(Target.Address)) Is Nothing Then
MsgBox " Du lieu da bi thay doi !"
End If

End Sub
Bài đã được tự động gộp:


Dạ, Mình có cách nào khác mà vẫn giữ nguyên vùng từ "B22: D22" không ạ. Tại vì cái file thực tế của mình thì vùng tương tự như "B2: D21" là nó nằm rải rác ở các sheet khác tổng hợp lại.
B23: D23 ghi nhận kết quả của B22: D22 (không dùng công thức), khi B22: D22 thay đổi thì sẽ có giá trị khác với B23: D23, dùng "màu mè gì đó" để phát hiện thay đổi. Sau đó tự tính tiếp mình muốn làm gì.
 
Upvote 0
Bạn chép code đã làm lên đây xem nào. Không có máy tính nên không xem file được á.
Mình gửi thêm hình để dễ hình dung ạ.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B22: D22"), Range(Target.Address)) Is Nothing Then
MsgBox " Du lieu da bi thay doi !"
End If

End Sub
 

File đính kèm

  • Tieuchi.png
    Tieuchi.png
    17.6 KB · Đọc: 5
Upvote 0
B23: D23 ghi nhận kết quả của B22: D22 (không dùng công thức), khi B22: D22 thay đổi thì sẽ có giá trị khác với B23: D23, dùng "màu mè gì đó" để phát hiện thay đổi. Sau đó tự tính tiếp mình muốn làm gì.
Dạ vâng. Để mình thử ạ. Cảm ơn bạn.
 
Upvote 0
Web KT

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

Back
Top Bottom