Excel VBA – 公共variables不在模块之间传递

我正在尝试从用户窗体传递一个公开声明的variables的值回到代码最初开始的模块。 我可以在用户窗体中打印variables的值,但是当代码跳转到起始模块时,它不会持续。 Option Explicit在双方声明,我也声明单个variables(忽略var2 – var6,因为它们不被使用,直到我解决这个单一问题)。

代码path从下面的第一部分开始,在“StatSelection.Show”跳转到用户窗体,然后跳回到用户窗体的末尾。 第一个debug.print提供了variables,但第二个是空白的..

主要代码是:

Option Explicit Public var1 As String Sub NoNameGame2FirstRoundResults() ' ' NoNameGame Macro ' ' 'Load Round 1 file Dim r1Name As Variant Dim nngr1r As Workbook ChDir "D:\Users\stefan.bagnato\Desktop\No Name Game" r1Name = Application.GetOpenFilename If r1Name <> False Then Set nngr1r = Workbooks.Open(r1Name) End If 'Load previous week's file Dim r1rName As Variant Dim wps As Workbook ChDir "D:\Users\stefan.bagnato\Desktop\Weekly Performance Summary" r1rName = Application.GetOpenFilename If r1rName <> False Then Set wps = Workbooks.Open(r1rName) End If 'Create radio buttons to select week 1 stat StatSelection.Show 'Parse Column B for names, and paste corresponding data in column C nngr1r.Activate Debug.Print var1 ActiveWorkbook.Worksheets("Sheet1").Columns(2).Find("Adam").Offset(N, 1) = var1 End Sub 

用户表单是:

  Option Explicit Public var1 As String Sub OptionButton1_Click() Dim wps As Workbook, x As String For Each wps In Workbooks If wps.name <> ThisWorkbook.name Then x = wps.name Next wps Workbooks(x).Activate var1 = Format((ActiveWorkbook.Worksheets("Sheet1").Range("F4")), "hh:mm:ss") var2 = Format((ActiveWorkbook.Worksheets("Sheet1").Range("F5")), "hh:mm:ss") var3 = Format((ActiveWorkbook.Worksheets("Sheet1").Range("F6")), "hh:mm:ss") var4 = Format((ActiveWorkbook.Worksheets("Sheet1").Range("F7")), "hh:mm:ss") var5 = Format((ActiveWorkbook.Worksheets("Sheet1").Range("F9")), "hh:mm:ss") var6 = Format((ActiveWorkbook.Worksheets("Sheet1").Range("F10")), "hh:mm:ss") Debug.Print var1 Me.Hide End Sub 

从UserForm模块中删除公共variables声明并仅在一个标准模块上声明它。