我在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变量例程分成它们自己的(单个)子例程,但变量没有传递下去。有什么帮助怎么做?
答案 0 :(得分:0)
有两种方法可以执行此操作,要么声明单独的子例程,例如 sub mySub(myVar as integer) 然后使用以下代码调用代码中的sub: mySub(b)中 第二种方法是在任何子程序之外声明变量,如: public b为整数 然后你可以在所有子程序中使用它们。