Excel bị đẩy (tự thoát) khi chạy coding

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

syquyen1987

Thành viên hoạt động
Tham gia
8/7/18
Bài viết
193
Được thích
43
Dear các Anh,

Em có một thắc mắc không hiểu sao dòng code đơn giản này mà mỗi lần chạy là toàn bị đẩy ra thôi (excel tự thoát). Các Anh biết có thể cho em biết lý do không ạ (Em đặt ô C7 khi thay đổi thì ô đó tự điền kí tự MA ạ). Em cảm ơn ạ
Ghi chú: Khi ô C7 thay đổi, em đã cho chạy code rất nhiều thứ thì không bị làm sao, nhưng chỉ thay đổi ô C7 thành một kí tự bất kì thì bị đẩy ra ạ

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("C7")
   
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
      Range("C7") = "MA"
    End If
End Sub
 
Lần chỉnh sửa cuối:
Bạn bảo Excel khi nhập MA vào C7 xong thì quay trở lại nhập MA tiếp vào đó. Làm mãi như thế thì nó mệt, nó tự ái nghỉ chơi thôi.

Nói thêm: Target là range, lại đi đường vòng Range(Target.Address)?
 
Upvote 0
Bạn bảo Excel khi nhập MA vào C7 xong thì quay trở lại nhập MA tiếp vào đó. Làm mãi như thế thì nó mệt, nó tự ái nghỉ chơi thôi.

Nói thêm: Target là range, lại đi đường vòng Range(Target.Address)?
Em hiểu vấn đề rồi ạ, nghĩa là vòng lặp không lối thoát ạ

Em cảm ơn anh ạ
 
Upvote 0
Range(Target.Address) đích thị là Target rồi.

Như hình thì lại siêu mượt

View attachment 294096
Anh có thể giải thích cho em biết sCellTrigger là gì và tại sao chạy ok được không ạ. Em cảm ơn ạ
Bài đã được tự động gộp:

Anh có thể giải thích cho em biết sCellTrigger là gì và tại sao chạy ok được không ạ. Em cảm ơn ạ
Em xin lỗi, sCellTrigger là do biến đặt tùy ý ạ. Anh giải thích là tại sao chạy ok được không ạ.
 
Upvote 0
Anh có thể giải thích cho em biết sCellTrigger là gì và tại sao chạy ok được không ạ. Em cảm ơn ạ
Bài đã được tự động gộp:


Em xin lỗi, sCellTrigger là do biến đặt tùy ý ạ. Anh giải thích là tại sao chạy ok được không ạ.
Bạn xem 2 code khác nhau cái gì và đọc hướng dẫn của microsoft
 
Upvote 0
Range(Target.Address) đích thị là Target rồi.

Như hình thì lại siêu mượt

View attachment 294096
Chưa đủ mượt.
Đã cầu kỳ biến hằng này nọ thì cũng dự phòng sự kiện này có thể làm công việc khác với Target khác.
Chơi cho hoành tráng thì phải đặt phần gán "MA" vào một sub.

Private Sub Worksheet_Change(ByVal Target As Range)
GanMA Target
' các sub khác
End Sub

Private Sub GanMA(ByVal Target As Range)
' code như trong hình
' nếu xịn nữa thì nên lưu lại trị Application. EnableEvents trước khi đặt nó là False
' và sau đó thì hồi phục lại trị đã lưu. Gọi nhiều hàm dính líu đến cài đặt thì nên vậy.
End Sub
 
Upvote 0
Chưa đủ mượt.
Đã cầu kỳ biến hằng này nọ thì cũng dự phòng sự kiện này có thể làm công việc khác với Target khác.
Chơi cho hoành tráng thì phải đặt phần gán "MA" vào một sub.

Private Sub Worksheet_Change(ByVal Target As Range)
GanMA Target
' các sub khác
End Sub

Private Sub GanMA(ByVal Target As Range)
' code như trong hình
' nếu xịn nữa thì nên lưu lại trị Application. EnableEvents trước khi đặt nó là False
' và sau đó thì hồi phục lại trị đã lưu. Gọi nhiều hàm dính líu đến cài đặt thì nên vậy.
End Sub
Anh có thể giải thích giúp em được không ạ. Code của anh đầy đủ là gì và tính năng ưu việt hơn là như thế nào ạ. Em cảm ơn ạ
 
Upvote 0
Range(Target.Address) đích thị là Target rồi.

Như hình thì lại siêu mượt

View attachment 294096
Anh ơi, Em đang dùng code của anh, nhưng vừa rồi em phát hiện ra một lỗi là: ô C7 mà người nhập liệu không phải là dạng số thì sẽ bị lỗi, và một khi đã lỗi rồi thì nhập lại nhưng code không tự chạy ạ (phải thoát file excel mới chạy lại được), và một khi đã lỗi là em bấm nút X thoát file bình thường được ạ (Nút X đóng file em đã vô hiệu hóa rồi, thông thường phải bấm thoát trên Menu Ribbon ạ), mong anh cho em xin ý kiến để em hoàn thiện ạ.
@VetMini @befaint nhờ các anh hỗ trợ em với ạ. Em cảm ơn ạ
 
Upvote 0
Anh ơi, Em đang dùng code của anh, nhưng vừa rồi em phát hiện ra một lỗi là: ô C7 mà người nhập liệu không phải là dạng số thì sẽ bị lỗi, và một khi đã lỗi rồi thì nhập lại nhưng code không tự chạy ạ (phải thoát file excel mới chạy lại được), và một khi đã lỗi là em bấm nút X thoát file bình thường được ạ (Nút X đóng file em đã vô hiệu hóa rồi, thông thường phải bấm thoát trên Menu Ribbon ạ), mong anh cho em xin ý kiến để em hoàn thiện ạ.
@VetMini @befaint nhờ các anh hỗ trợ em với ạ. Em cảm ơn ạ
thêm on error bẫy lỗi, thì mới tránh được trường hợp lỗi không ngờ
tìm hiểu on error goto, hay on error resume next, ... err.number
Bẫy lỗi là 1 kiến thức cơ bản khi viết, đặc biệt liên quan các sự kiện
 
Upvote 0
Bạn cần gửi file đang làm đó lên thì mới trả lời được.
File của em liên kết rất nhiều file trong thư mục OneDrive của em ạ. Vì vậy em xin gửi anh một số hình ảnh dưới đây thì anh vui lòng xem giúp em ạ. Em cảm ơn ạ

1693969091466.png
1693969135582.png
1693969167392.png
Bài đã được tự động gộp:

thêm on error bẫy lỗi, thì mới tránh được trường hợp lỗi không ngờ
tìm hiểu on error goto, hay on error resume next, ... err.number
Bẫy lỗi là 1 kiến thức cơ bản khi viết, đặc biệt liên quan các sự kiện
Em bẫy lỗi rồi anh ạ, nhưng nhập lại dạng số vẫn không hoạt động được, và nút X đóng file em vô hiệu hóa khi mở file thì lại hoạt động được anh ạ
 
Upvote 0
Em bẫy lỗi rồi anh ạ, nhưng nhập lại dạng số vẫn không hoạt động được, và nút X đóng file em vô hiệu hóa khi mở file thì lại hoạt động được anh ạ
Cái đó thì hỏi người viết những code đó nhé
người đó mà không biết, thì yêu cầu viết lại.
(bẫy lỗi là bẫy lỗi phải đúng, thì mới chuẩn được, xem lại bài bác VetMini nói trên)
 
Upvote 0
Web KT

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

Back
Top Bottom