ngăn không cho chạy nhiều macro


0

"cách tránh Chạy nhiều phiên bản macro"

Sub CallBot()
    If Activesheet.Range("A1").Value = 1 Then
        Call Bot
    ElseIf Activesheet.Range("B1").Value = 1 Then 
        Call BotTwo
    End If
    Application OnTime + TimeValue("00:01:00")
End Sub

Điều này dẫn đến nhiều phiên bản của CallBot Running (looping), nhưng tôi chỉ muốn chạy nó mỗi một phút, vui lòng giúp đỡ

Cũng đã thử mã sau

Sub CallBot()
    Dim TimeToRun
    If Activesheet.Range("A1").Value = 1 Then
        Call Bot
    ElseIf Activesheet.Range("B1").Value = 1 Then 
        Call BotTwo
    End If
    Application OnTime + TimeValue("00:01:00")
End Sub

Sub Repeat()
    If TimeToRun > 0 Then
        Application.OnTime TimeToRun, "CallBot", False
    End If

    TimeToRun = Now + TimeValue("00:00:20")
    Application.OnTime TimeToRun, "CallBot"
End Sub

Câu trả lời:


0

Chỉ cần đặt một biến toàn cục để theo dõi xem bot có được lên lịch để chạy hay không:

Public botScheduled As Boolean

Sub CallBot()
    If not botScheduled Then
        If Activesheet.Range("A1").Value = 1 Then
            Call Bot
            botScheduled = True
        ElseIf Activesheet.Range("B1").Value = 1 Then 
            Call BotTwo
            botScheduled = True
        End If
    End If
End Sub

Bạn chưa cung cấp Botmã của mình , nhưng khi mã bot của bạn kết thúc, đó là nơi bạn có thể đặt botScheduled = False.


Tôi rất xin lỗi, không phải Bot chạy nhiều lần CallBot của nó mà cứ lặp đi lặp lại trong nhiều trường hợp, vì vậy 'bot' được gọi nhiều lần!
Madhukar Jadhav
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.