在多个子VBA中使用Variable

时间:2016-06-21 21:42:37

标签: excel vba excel-2010

所以我使用excel 2010,现在,我尝试使用计算一个子变量的值,并希望它用于多个潜艇,除了我可以&#39 ;弄清楚如何做到这一点。以下是我最基本使用的一个示例

Public Sub Calc()
Dim i As Integer
i = 10 - 5    
End Sub


'Other sub that will use the value for i calculated in the Calc sub

Sub Macro()
y = i +5
End Sub

我怎么能够使用/传递此值为" i"在/进入子宏?

3 个答案:

答案 0 :(得分:2)

Dim 移到上面

Public i As Integer

Public Sub Calc()
    i = 10 - 5
End Sub

Sub Macro()
    y = i + 5
    MsgBox y
End Sub

Sub MAIN()
    Call Calc
    Call Macro
End Sub

尝试运行MAIN()

答案 1 :(得分:1)

插入新模块并将i定义为:

Public i As Integer

然后你就可以随时使用它。

有关详细信息,请参阅:Scope of variables in Visual Basic for Applications

答案 2 :(得分:0)

我想使用Function而不是Sub。

Sub Main()
  Msgbox Macro(calc)
end Sub

Function Calc() as Integer
  Dim i As Integer
  i = 10 - 5    
  Calc = i
End Function

Function Macro(i as Integer) as Integer
  Macro = i + 5
End Function