Как я могу вызвать макрос, который содержит цикл, но запускает только одну итерацию этого цикла? - PullRequest
0 голосов
/ 02 ноября 2018

Макрос, который я вызываю, находится в другой электронной таблице, которая мне не принадлежит, поэтому я бы предпочел не редактировать их код.

Что-то вроде:

Sub X()
    Call MacroX
End Sub

Sub MacroX()
    For i = 1 to 100
        ... code...
    Next i
End Sub

Но я только хочу, чтобы i был равен 1, а не проходил через другие 99 итераций.

1 Ответ

0 голосов
/ 02 ноября 2018

Вы ищете что-то подобное?

Option Explicit

Public FromMacro As Boolean 

Sub X()

    FromMacro = True

    Call MacroX

End Sub

Sub MacroX()

    Dim Iteration As Long
    Dim i As Long

    If FromMacro = True Then
        Iteration = 1
    Else
        Iteration = 100
    End If

    For i = 1 To Iteration
        MsgBox Iteration
    Next i

    FromMacro = False

End Sub
...