Excel 如何调用包含循环但只运行该循环一次迭代的宏?

Excel 如何调用包含循环但只运行该循环一次迭代的宏?,excel,vba,loops,iteration,Excel,Vba,Loops,Iteration,我调用的宏位于另一个不属于我的电子表格中,因此我不希望编辑它们的代码 大致如下: Sub X() Call MacroX End Sub Sub MacroX() For i = 1 to 100 ... code... Next i End Sub 但是我只希望I等于1,而不是在其他99次迭代中循环。你在寻找类似的东西吗 Option Explicit Public FromMacro As Boolean Sub X() FromM

我调用的宏位于另一个不属于我的电子表格中,因此我不希望编辑它们的代码

大致如下:

Sub X()
    Call MacroX
End Sub

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

但是我只希望
I
等于
1
,而不是在其他99次迭代中循环。

你在寻找类似的东西吗

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

欢迎来到SO。请看,别忘了阅读和阅读。另外,请查看“添加两个宏代码”中的,以及更多的好信息,除非此宏特别包含可以触发/调用的转义子句,否则在不修改代码的情况下,您将无法执行此操作。如果您根本无法更改代码,则无需执行任何操作。与“拥有”代码的人员交谈,并要求其为
to
部分获取一个参数,以便人们可以告诉
to 1
to 100
或他们需要的任何信息。或者将宏复制并粘贴到您自己的工作表中,并在其中进行所需的更改,以便不更改原始宏。我认为需要使用布尔值,但我无法在MacroX中添加“FromMacro”代码位,因为它不属于我。