我有一个命令按钮,当我点击它时,它会显示一个自定义的用户窗体,其中包含一个组合框,其中包含从单元格中取出的项目。用户假设按下该命令然后出现用户表单,他需要从列表中选择一个项目,该项目是不同工作簿中的工作表名称,因此它将从该工作表导入数据。但是我遇到了一个问题: 当用户窗体出现时,我点击组合框它没有显示任何项目,然后如果我在用户窗体上单击一次然后再次检查组合框它正确显示项目,如果我再次点击用户窗体,组合框项目将被玷污!如果我选择了一个项目,那就完美了。 所以我想要实现的是:我希望组合框能够直接显示项目而无需单击用户窗体。 代码是这样的:
在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
答案 0 :(得分:1)
这是因为你告诉它在点击事件上这样做。
更改
Private Sub UserForm_Click()
到
Private Sub UserForm_Initialize()
更改后,组合框问题也将消失。