首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要打开带有组合框列表但已选定值的userform

需要打开带有组合框列表但已选定值的userform
EN

Stack Overflow用户
提问于 2015-05-04 04:44:48
回答 2查看 426关注 0票数 0

我有一个运行良好的用户表单。现在我需要编辑我使用userform选择的一些值,所以我想用已经选择的值打开userform。我已经有了将值保存在某些工作表中的userform,我尝试打开相同的userform,但是在打开userform时已经选择了值。

我该怎么做呢?这是我的密码:

代码语言:javascript
运行
复制
Private Sub CommandButton1_Click()

    Worksheets("Info").Activate

    With Worksheets("Info").Range("A:A")
        Set c = .Find(ComboBox1.Value, LookIn:=xlValues)
        If Not c Is Nothing Then

            Dim cliente As String
            Dim prov As String
            Dim dia As Integer
            Dim mes As String
            Dim año As Long
            Dim prod As String
            Dim fob As Long
            Dim hon As Variant
            Dim fee As Variant
            Dim cont As Integer
            Dim est As Integer
            cliente = c.Offset(0, 1).Value
           prov = c.Offset(0, 2).Value
           dia = c.Offset(0, 3).Value
           mes = c.Offset(0, 4).Value
           año = c.Offset(0, 5).Value
           prod = c.Offset(0, 6).Value
           fob = c.Offset(0, 7).Value
           hon = c.Offset(0, 8).Value
           fee = c.Offset(0, 9).Value
           cont = c.Offset(0, 10).Value
           est = c.Offset(0, 21).Value
           '
       End If
   End With
   'HERE STARTS THE PROBLEM!!!
   ' Now I open the userform, I need comboboxs open with the old values           
   UserForm1.Show
   UserForm1.ComboBox1.Value = cliente
   UserForm1.ComboBox1.Value = prov
   UserForm1.ComboBox1.Value = dia
   UserForm1.ComboBox1.Value = mes
   UserForm1.ComboBox1.Value = año
   UserForm1.TextBox1.Value = prod
   UserForm1.TextBox1.Value = fob
   UserForm1.TextBox1.Value = hon
   UserForm1.TextBox1.Value = fee
   UserForm1.TextBox1.Value = cont
   UserForm1.ComboBox1.Value = est

End Sub
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-04 12:34:32

UserForm1.Show默认为modal,因此需要在显示表单之前设置其属性。代码当前所做的是显示表单,然后在表单退出后创建一个 UserForm1 (旧的已经卸载),设置它的属性,然后允许它超出作用域。试试这个:

代码语言:javascript
运行
复制
Dim form_one As UserForm1

Set form_one = New UserForm1
temp.Controls("ComboBox1").Value = cliente
'etc...
form_one.Show

如果我正确地理解了工作流,更简单的解决方案可能是在用户选择所有东西而不是卸载它之后对表单进行.Hide

票数 0
EN

Stack Overflow用户

发布于 2015-05-04 07:01:23

要将项添加到ComboBox中,请使用以下语法:

代码语言:javascript
运行
复制
ComboBox1.AddItem "your value"

就像这样:

代码语言:javascript
运行
复制
UserForm1.ComboBox1.AddItem = cliente

要显示默认项,请使用其索引:

代码语言:javascript
运行
复制
UserForm1.ComboBox1.ListIndex = 2

如果只有它的文本,请使用循环:

代码语言:javascript
运行
复制
For i = 1 To ComboBox1.ListCount
    If (ComboBox1.List(i) = myValue) Then
        ComboBox1.ListIndex = i
        Exit For
    End If
Next i
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30022772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档