Vba UserForm组合框项目不会出现,直到我点击用户窗体

时间:2014-11-27 06:21:27

标签: excel vba excel-vba combobox

我有一个命令按钮,当我点击它时,它会显示一个自定义的用户窗体,其中包含一个组合框,其中包含从单元格中取出的项目。用户假设按下该命令然后出现用户表单,他需要从列表中选择一个项目,该项目是不同工作簿中的工作表名称,因此它将从该工作表导入数据。但是我遇到了一个问题: 当用户窗体出现时,我点击组合框它没有显示任何项目,然后如果我在用户窗体上单击一次然后再次检查组合框它正确显示项目,如果我再次点击用户窗体,组合框项目将被玷污!如果我选择了一个项目,那就完美了。 所以我想要实现的是:我希望组合框能够直接显示项目而无需单击用户窗体。 代码是这样的:

在userform中:

Private Sub UserForm_Click()



Dim mlf As Workbook

Dim adad As Long

Dim mada As String

Dim lastRow As Long

Set mlf = ActiveWorkbooklastRow = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row

For adad = 1 To lastRow

mada = Sheet3.Cells(adad, 1)

With ComboBox1

        .AddItem mada

End With

Next

    End Sub


Private Sub cmdOkay_Click()

 'Verify that an item was selected

If Me.ComboBox1.BoundValue = vbNullString Then

    MsgBox "You did not choose an item!", vbOKOnly

    Exit Sub

Else

    MsgBox "You have selected " & Me.ComboBox1.BoundValue, vbOKOnly

    Sheet3.Cells(1, 2) = Me.ComboBox1.BoundValue


End If

   Unload Me 

End Sub

在CommandButton中

Dim testbook As Workbook

Set testbook = ThisWorkbook

Set database = Workbooks.Open(Filename:=myPath & myFile)

testbook.Worksheets("Sheet4").Range("A1:B5").Clear

With UserForm1
.Caption = "Settings of the test"
End With

Dim lo As Integer

For lo = 1 To database.Sheets.Count

     testbook.Sheets("Sheet4").Cells(lo, 1) = database.Worksheets(lo).Name

Next

UserForm1.Show

1 个答案:

答案 0 :(得分:1)

这是因为你告诉它在点击事件上这样做。

更改

Private Sub UserForm_Click()

Private Sub UserForm_Initialize()

更改后,组合框问题也将消失。