xin giúp đỡ sửa lỗi chạy code vba

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

DanVanPhoto

Thành viên chính thức
Tham gia
29/11/22
Bài viết
51
Được thích
-4
xin chào cả nhà ạ. Chuyện là em có một đoạn mã macro tự động chạy khi giá trị trong ô có thay đổi( ô ở đây là ô có chứa hàm sẽ tự thay đổi không có thao tác click hay chỉnh sửa, cũng có thể là ô được tham chiếu từ ô khác) khi ô có thay đổi thì macro "LAM_MOI" sẽ được kích hoạt ( macro "LAM_MOI" này có nhiệm vụ là copy công thức từ vùng "AR4:BV19" và paste vào ô G10). nhưng khi ô "O4" chứa công thức có thay đổi thì macro "LAM_MOI" có chạy nhưng không dừng lại và báo lỗi.em cảm ơn.
Public pubValue Private Sub Workbook_Activate() pubValue = Sheet1.Range("O4").Value End Sub Private Sub Workbook_SheetCalculate(ByVal Sh As Object) If pubValue <> Sheet1.Range("O4").Value Then LAM_MOI pubValue = Sheet1.Range("O4").Value End If End Sub

Sub LAM_MOI() 'DEVELOPMENTAL_301 Set AT = ActiveSheet Range("AR4").Select Range("AR4:BV19").Select Selection.Copy Range("G10").Select AT.Paste Range("E5").Select Application.CutCopyMode = False End Sub
 
xin chào cả nhà ạ. Chuyện là em có một đoạn mã macro tự động chạy khi giá trị trong ô có thay đổi( ô ở đây là ô có chứa hàm sẽ tự thay đổi không có thao tác click hay chỉnh sửa, cũng có thể là ô được tham chiếu từ ô khác) khi ô có thay đổi thì macro "LAM_MOI" sẽ được kích hoạt ( macro "LAM_MOI" này có nhiệm vụ là copy công thức từ vùng "AR4:BV19" và paste vào ô G10). nhưng khi ô "O4" chứa công thức có thay đổi thì macro "LAM_MOI" có chạy nhưng không dừng lại và báo lỗi.em cảm ơn.
Public pubValue Private Sub Workbook_Activate() pubValue = Sheet1.Range("O4").Value End Sub Private Sub Workbook_SheetCalculate(ByVal Sh As Object) If pubValue <> Sheet1.Range("O4").Value Then LAM_MOI pubValue = Sheet1.Range("O4").Value End If End Sub

Sub LAM_MOI() 'DEVELOPMENTAL_301 Set AT = ActiveSheet Range("AR4").Select Range("AR4:BV19").Select Selection.Copy Range("G10").Select AT.Paste Range("E5").Select Application.CutCopyMode = False End Sub
Không đính kèm tập tin thì chắc đợi lâu đây.
 
Thôi thì làm lấy 1 cái nút. Lúc nào cần cập nhật thì bấm vô cái nút đó cũng được mà. nó không tốn bao nhiêu thời gian đâu
 
Thôi thì làm lấy 1 cái nút. Lúc nào cần cập nhật thì bấm vô cái nút đó cũng được mà. nó không tốn bao nhiêu thời gian đâu
hi tại em lười lắm. mà lại thích cái file nó thông minh chút. mà em mò tới đây rồi, chạy được nhưng nó không dừng lại được, nó cứ lặp lại vô tận tới đơ luôn máy
 
Trong tập tin có sub nào liên quan đến ô "O4" đâu bạn.

Vậy thì không ổn rồi, mình lại không có thói quen giúp những người có tính lười.
dạ trong file là ô"I5" ạ. code em gán trong bài viết là khi em để chạy thử thôi ạ( khi chạy thử thì em để tham chiếu tới ô khác ạ).
mong bác giúp em với ạ. em mới tìm tòi về excel và vba nên em tò mò lắm ạ. em rất muốn những gì có thể làm cho file hoạt động một cách thông minh nhất có thể ạ. em cảm ơn.
 
dạ trong file là ô"I5" ạ. code em gán trong bài viết là khi em để chạy thử thôi ạ( khi chạy thử thì em để tham chiếu tới ô khác ạ).
mong bác giúp em với ạ. em mới tìm tòi về excel và vba nên em tò mò lắm ạ. em rất muốn những gì có thể làm cho file hoạt động một cách thông minh nhất có thể ạ. em cảm ơn.
Cứ diễn giải một đường, đưa tập tin một nẻo thế này thì biết đường nào mà lần.
 
1/ Chịu khó viết hoa đầu dòng.
2/ Kiểm tra từng bước (bằng cách ấn phím F8) xem Sub "LAM_MOI" chạy như thế nào, lỗi do đâu.
Bạn thử đi rồi tính tiếp.
em thử cả đêm qua rồi ạ. bí quá nên em lên cầu cứu các bác đó ạ. em cũng thử cho thêm exit sub vào để thoát khỏi sub mà không được ạ. em chạy thử nếu để msgBox thì không bị lặp. nhưng cho chạy macro LAM_MOI thì nó lại bị.
 

File đính kèm

  • BẢNG CHẤM CÔNG.xlsm
    32.7 KB · Đọc: 2
Private Sub Worksheet_Calculate() Dim Xrg As Range Set Xrg = Range("I5") If Not Intersect(Xrg, Range("I5")) Is Nothing Then LAM_MOI End If End Sub
Em có thử dùng code này các bác xem giúp em với. em thấy nó chạy nhưng lại là cứ sheet1 có thay đổi là nó chạy mãi không dừng dù là mình lưu file nó cũng chạy. Em cảm ơn.
Bài đã được tự động gộp:

Mình chỉ sửa lại sub "LAM_MOI", bạn chạy thử xem thế nào.
Bài đã được tự động gộp:


Ý bạn là ở trường hợp bài này phải không?
Vâng em cảm ơn bác. để em thử .
 
Web KT
Back
Top Bottom