首页 文章

保持ComboBox列表已填充

提问于
浏览
0

我用UserForm创建了一个Word 2010 VBA宏子服务器 . Sub在表单文档中搜索== Codes ==,将找到的== code ==作为标签放入Userform中,然后允许用户将他们输入的== code ==替换为Combobox(同一UserForm的一部分) .

然后将每个输入数据串保存到UserForm中的Combobox列表中,以便以后选择(如果需要) .

这可以正常工作,直到此宏/用户形式到期,因为搜索的文档已完成(或取消) .

然后我想打开下一个表单文档,并在同一个Macro / Sub的新发布中保留前组合框的数据列表(作为填充下一个打开文档的选项 - 例如,代码==客户端名称==会经常出现,我宁愿选择一个组合框列表条目,而不是一遍又一遍地输入客户名称)

但是我似乎无法将此组合框列表保留在使用先前组合框数据填充的此Macro Sub的新发布中 - 即使我将此例程作为单独的模块隔离并使用“公共”维度预定义变量 .

所以,在我试图解决这个问题之前,我只是一个简单的问题:

一旦宏终止,所有公共变量“丢弃”?当我以前在DOS WP.51宏中编程时,你可以无休止地将数据字符串保存在RAM中(直到你“杀死”它们,或者关闭WP)

如果公共变量没有被“删除”,那么有人可以给我一个代码样本,通过该代码可以保留公共变量并将其填充到重复启动的组合框用户表单中 .

任何想法,无论多么简短,都会有所帮助

非常感谢提前 . . .

麦克风

1 回答

  • 1

    不完全确定你要做什么,但我推荐的是以下(假设表单被命名为“UserForm1”,然后是“UserForm2”:

    1)使用以下命令创建用于打开表单的模块:

    Sub test()
        UserForm1.Show
        'Rest of things that you want to do...you will be able to access the values in your combobox in userform1
        UserForm2.Show
    End Sub
    

    2)在UserForm1中,包含一个关闭表单的按钮,并包含以下代码:

    Sub btn_Exit_Click()
        Me.Hide
    End Sub
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
        If CloseMode = 0 Then
            Cancel = True
            MsgBox "The X is disabled, please use a button on the form.", vbCritical
        End If
    
    End Sub
    

    这将允许您保持对UserForm的控制,并确保您可以保留值 . 有可能禁用Closing按钮,但我无法弄明白(我对表单的体验主要在Access中,而且具有不同的属性) .

    隐藏表单会保留值以便您可以查看它们,而当用户关闭表单时,您将丢失其中的值 .

    *注意:代码禁用从VBA Express取得的X按钮

相关问题