如何在按钮点击时将项目添加到组合框?

时间:2015-06-02 21:51:32

标签: excel-vba vba excel

我想将项目添加到excel工作表中的组合框中,该文本框位于用户表单中的文本框中单击按钮。我看到添加到组合框的值但是当我关闭并重新打开工作簿时它将变为空。任何人都可以帮我处理这件事吗?

首先感谢你的快速反应

感谢你们的反馈和纠正。让我更清楚地表达我的关注

2 个答案:

答案 0 :(得分:1)

  1. 创建工作簿并另存为xlsm。
  2. 在第一个工作表上定义用户名,如下所示: 姓名:dn_cmb_items 范围:=""
  3. 使用开发人员功能区将Excel(非ActiveX)组合框添加到Worksheet1并将其逐个列表设置为dn_cmb_items
  4. 打开VBA编辑器并将用户表单添加到工作簿,将其命名为frm_add_cmb_item并将ShowModal设置为False
  5. 将一个文本框拖放到表单并将其命名为tb_item_text
  6. 向表单中删除一个按钮,将其命名为cmb_add,然后从其上下文菜单中选择View code。这将创建click事件处理程序。
  7. 按如下方式实施处理程序:
  8.     Private Sub cmb_add_Click()
          Dim v_r As Range, v_n As Name
          Set v_n = Names("dn_cmb_items")
          If v_n.Value = "=""""" Then
            v_n.Value = "=" & Worksheets(1).Name & "!$A$1:$A$1"
            v_n.RefersToRange.Value = tb_item_text.Text
          Else
            Set v_r = v_n.RefersToRange
            Set v_r = v_r.Cells(v_r.Rows.Count + 1, 1)
            v_r.Value = tb_item_text.Text
            v_n.Value = "=" & Worksheets(1).Name & "!$A$1:" & v_r.Address(True, True)
          End If
        End Sub
    
    1. 将一个按钮放到workshet上,然后在工作簿中创建/设置一个宏。使用代码frm_add_cmb_item.Show实现创建的宏。
    2. Debug菜单的VBA编辑器中,选择Compile。然后保存VBAProject以及工作簿。这就是编码的全部内容。
    3. 切换到工作表,显示表单。
    4. 现在,当您在文本框中输入一些内容,然后点击cmb_add按钮时,新项目将添加到最后的A列,从而更改分配的dn_cmb_items值到工作表上的组合框。 请参阅随附的屏幕短片:
    5. 初始状态: Initial state

      1补充道: Add 1

      2补充道: Add 2

      PS 我有所有代码的准备好的工作簿。我应该在哪里上传它?

答案 1 :(得分:0)

特定于您的问题并始终发布相关代码,以便为其他人解决问题。

如果要在执行userform时查看数据,只需在userform_activate或Initialize中写入所需数据。在执行之前,它将获取值并显示在组合框中。

您从工作表中获取的输入只是在另一个工作表中写入这些值,这样无论何时打开工作簿,值都不会被删除。