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

时间:2016-08-27 08:47:25

标签: excel vba listbox

我在Excel VBA中创建了一个useform,其中包含一个包含两个值的列表框。一次只能选择一个值。我在列表框中使用click事件,当用户单击列表框中的值时,特定范围(单元格)值将成为用户在列表框中单击的值。事件代码如下所示,

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

用户还可以关闭用户窗体并使用excel表中的按钮打开用户窗体,其中包含以下2个子例程,

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

卸载的原因是因为在给定活动工作表的情况下,userform中的另一个列表框必须采用不同的值。当用户表单被激活时,必须根据范围(Range("input_Period").Value)的值选择列表框(lbPeriod)中的一个值。在表单初始化事件我使用以下代码

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

我注意到的是,当我打开表单并单击一个值时,我的范围值会更改(这是正确的)但是当我关闭并再次打开表单时,范围值(Range("input_period").Value)将变为空白。我使用双击事件测试它,双击事件不会出现此问题。我还要提到范围也是两个值的下拉列表。我该怎么办?

我还看到双击事件具有ByVal Cancel As MSForms.ReturnBoolean扩展名。只需点击一下即可使用此类扩展吗?

我可以创建两个彼此看起来相似的形式,但我不喜欢这样。

0 个答案:

没有答案