Hỏi lệnh dừng Macro!

Liên hệ QC

tuyetbay

Thành viên hoạt động
Tham gia
23/1/08
Bài viết
154
Được thích
179
Em muốn khi code chạy thì khi mình nhấn vào 1 ô bất kỳ thì nó sẽ dừng lại. Còn nếu code không chạy thì có nhấn vào cũng như không.
Nếu dùng Ctrl + Pause Break thì nó cứ xuất hiện bảng thông báo thôi! Em không muốn xuất hiện bảng thông báo đó. Mà muốn thi hành lệnh End luôn cơ.
Có bác nào giúp được em không ạ!
File đính kèm.
 
Mình chưa viết thử code, nhưng bạn thử dùng Event "selection_change", rồi dùng Sendkeys xem sao ??
 
Upvote 0
Mình không hiểu ý bạn. Nếu dùng sendkeys thì sẽ hiện bảng thông báo kia thì sao?
 
Upvote 0
Mình nghĩ để bất chợt ngắt ngang 1 Macro đang chạy thì không có cách nào khác Ctrl_Break vì VBA không cho phép chạy song song 2 Macro cùng lúc nên không thể dùng Macro này để kiểm soát Macro kia được. Nhưng mình cũng chưa hiểu vì sao bạn lại muốn ngắt ngang khi Macro đang chạy để làm gì vậy ??? Có thể tới đoạn nào bạn muốn ngừng thì hiện thông báo hỏi ngừng hay không ? Nếu đồng ý thì Exit Sub ngược lại thì cho nó chạy luôn...

TDN
 
Upvote 0
Nếu vậy thì bác có thể viết thêm code cho sub main là:
Sub main()
...
IF <click chọn ô trên Sheet1> = true Then
Exit Sub
End IF
...
End Sub

Hay cái gì đại loại như vậy được không?
 
Upvote 0
Vậy thì bật mí thêm code như vầy thì sao: (Cái này mượn của bác Boong đó, mong bác thông cảm nha!)
Mã:
[B]Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)[/B]
[B]Sub dem()[/B]
[B]Dim i As Long[/B]
[B]For i = 1 To 100[/B]
[B]Cells(1, 1) = i[/B]
[B]Sleep (200)[/B]
[B]DoEvents[/B]
[B]Next i[/B]
[B]If Cells(1, 1) = 100 Then[/B]
[B]Call dem[/B]
[B]End If[/B]
[B]End Sub
[/B]
Vẫn sử dụng chuột được và vẫn click chuôt lên cell được. Các giúp em 1 đoạn code cho hàm If đó giúp nó dừng lại được không?

Cho em xin chút ý kiến!
Các có thể cho em hỏi nếu click vào nút chạy thì khi click vào lần nữa thì dừng được không bác?
Còn nữa: Bác có thể cho ô dừng đó có thể là bất kỳ ô nào được không? Em chỉ cố định được thôi mà không biết chọn bất kỳ ô nào thì phải làm sao?
Mong các bác giúp đở cho!
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Mã:
Private Sub CommandButton1_Click()
If CommandButton1.Caption = "Chay" Then
CommandButton1.Caption = "Dung"
Cells(1, 1) = 1
Call dem
Else
CommandButton1.Caption = "Chay"
[COLOR=red]Cells(1, 1) = 0[/COLOR]
End If
End Sub
Dòng lệnh đỏ là làm theo ý bạn.
 
Upvote 0
Nhưng làm như vậy sub Dem dừng. Vì trong code có câu:
Mã:
 If Cells(1, 1) = 0 Then Exit For
Như vậy A1 phải có giá trị 0 mới dừng.
Muốn A1 giữ nguyên giá trị đang có thì làm như sau:

PHP:
If CommandButton1.Caption = "Chay" Then
CommandButton1.Caption = "Dung"
Cells(1, 1) = 1
Call dem
Else
CommandButton1.Caption = "Chay"
MsgBox "Stop the Macro"
End If
End Sub

Có thể bỏ luôn dòng lệnh MsgBox

PHP:
Sub dem()
Dim i As Long
Dim Lenh As String
Lenh = "Dung"
For i = 1 To 100
    Cells(1, 1) = i
    Sleep (200)
    DoEvents
    Lenh = Sheet1.CommandButton1.Caption
    If Lenh = "Chay" Then Exit Sub
Next i
If Cells(1, 1) = 100 Then
    Call dem
End If
End Sub
 
Upvote 0
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$H$10" Then
Call dem
End If
End Sub

PHP:
Sub dem()
Dim i As Long
Dim Lenh As String
Lenh = "chay"
For i = 1 To 100
Cells(1, 1) = i
Sleep (200)
DoEvents
Lenh = Selection.Value
If Lenh = "Dung" Then Exit Sub
Next i
If Cells(1, 1) = 100 Then
Call dem
End If
End Sub
 
Upvote 0
Em làm được rồi! Dễ vậy mà mò mãi không ra? Thành thật cảm ơn các bác nhiều nha!
Thanks...
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom