选定的列表框值必须等于一个范围

我在Excel VBA中创build了一个包含两个值的列表框。 一次只能select一个值。 我正在使用列表框上的单击事件,并且当用户单击列表框中的值时,特定的范围(单元格)值成为用户在列表框中单击的值。 事件代码如下所示,

Private Sub lbPeriod_Click() Range("input_Period").Value = frmInput.lbPeriod.Text End Sub 

用户也可以closures用户窗体并用excel表格中的button打开用户窗体,其中包含以下2个子程序,

 Sub showInputWizard() If frmInput.Visible = False Then Load frmInput frmInput.Show Else Unload frmInput End If End Sub 

卸载的原因是因为用户窗体中的另一个列表框必须在激活的工作表上采用不同的值。 当用户窗体被激活时,必须根据范围的值( Range("input_Period").Value )selectlistbox(lbPeriod)中的一个Range("input_Period").Value 。 在窗体初始化事件我使用下面的代码

 Private Sub UserForm_Initialize() Me.StartUpPosition = 0 Me.Top = Application.Top + 270 Me.Left = Application.Left + 750 Me.lbPeriod = Range("input_period").Value End Sub 

我注意到,当我打开窗体,并单击一个值我的范围值更改(这是正确的),但是当我closures并再次打开窗体范围值( Range("input_period").Value )变成空白。 我用双击事件testing了它,双击事件并没有给出这个问题。 我也不得不提到范围也是这两个值的下拉列表。 我能做什么?

我也看到双击事件有一个ByVal Cancel As MSForms.ReturnBoolean扩展。 点击一下就可以使用这种扩展吗?

我可以创build两个看起来相似的两个表单,但是我不会那么喜欢。