在Word 2013中保存/调用VBA变量

时间:2015-05-20 14:01:24

标签: vba ms-word word-vba

我在Word 2013中使用VBA来评分并返回最终用户将在某些旧版表单字段中输入的一些基本信息。我的代码,如果我将它全部放在一个子代码中,它可以正常工作:

Option Explicit

Sub ScoreLevel()

Dim a As Integer
Dim b As Integer
Dim Score as Integer
Dim Level as String

If ActiveDocument.FormFields("Text37").Result < "33" Then
    a = 2
Else
    a = 0
End If

If ActiveDocument.FormFields("Text40").Result = "0" Then
    b = 0
ElseIf ActiveDocument.FormFields("Text40").Result = "1" Then
    b = 1
ElseIf ActiveDocument.FormFields("Text40").Result > "1" Then
    b = 2
Else
    b = 0
End If

Score = a + b

Select Case Score
    Case 0 To 1
        Level = "Low"
    Case 2 To 3
        Level = "Moderate"
    Case Is > 3
        Level = "High"
End Select

MsgBox "Score = " & Score & vbNewLine & "Level: " & Level 

End Sub

现在我试图将变量和b变量例程分成它们自己的(单个)子例程,但变量没有传递下去。有什么帮助怎么做?

1 个答案:

答案 0 :(得分:0)

有两种方法可以执行此操作,要么声明单独的子例程,例如     sub mySub(myVar as integer) 然后使用以下代码调用代码中的sub:     mySub(b)中 第二种方法是在任何子程序之外声明变量,如:     public b为整数 然后你可以在所有子程序中使用它们。