我有一个命令按钮,当我单击它时,它显示了一个自定义的用户窗体,其中包含一个组合框,其中包含从工作表单元格中获取的项目。用户应该按下命令,然后出现用户窗体,他需要从列表中选择一个项目,该项目是不同工作簿中的工作表名称,因此它将从该工作表中导入数据。但是我遇到了一个问题:当出现用户窗体时,我单击组合框上没有任何项目,然后,如果我在用户窗体上单击了一次,然后再次检查组合框,它正确地显示了项目;如果我再次单击用户窗体,则组合框项目将成问题!如果我选择了一个项目,它会完美地工作。所以我想要实现的是:我希望组合框直接显示项目,而无需单击用户窗体。代码是这样的:
在用户表单中:
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
在命令按钮中
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
那是因为您告诉它在click事件上执行此操作。
改变
Private Sub UserForm_Click()
到
Private Sub UserForm_Initialize()
更改此设置后,组合框问题也将消失。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句