【问题标题】:How do I create a list in cells choosing from a combobox and selecting a button using VBA?如何在从组合框中选择并使用 VBA 选择按钮的单元格中创建列表?
【发布时间】:2014-02-04 12:51:20
【问题描述】:

我有一个充满值的组合框。我想在组合框中选择一个值,然后单击“添加”按钮将此值放入下面的一些单元格中。我可以使用以下代码将一项添加到我的列表中,但我希望能够添加多项。我觉得我很接近,我只需要一些调整!

Private Sub CommandButtonAddItem_Click()

Dim ws As Worksheet
Dim box As ComboBox
Dim food As String
Dim num As Integer
num = 19


Set ws = Worksheets("sheet1")
Set box = ws.OLEObjects("ComboBox1").Object

food = box.Value
Worksheets("sheet1").Cells(num, 1) = food

If Worksheets("sheet1").Cells(num, 1) = " " Then
Worksheets("sheet1").Cells(num, 1) = food

num = num + 1
End If


End Sub

【问题讨论】:

    标签: list vba excel combobox


    【解决方案1】:

    试试这个!

    如果“默认”单元格已经被占用,它将继续向下直到找到一个不为空的单元格,然后将值放入该单元格中。

    Private Sub CommandButtonAddItem_Click()
    
    Dim ws As Worksheet
    Dim box As ComboBox
    Dim food As String
    Dim num As Integer
    num = 19
    
    
    Set ws = Worksheets("sheet1")
    Set box = ws.OLEObjects("ComboBox1").Object
    
    food = box.Value
    
    While Worksheets("sheet1").Cells(num, 1) <> ""
    
        num = num + 1
    
    Wend
    
    Worksheets("sheet1").Cells(num, 1) = food
    
    End If
    
    End Sub
    

    【讨论】:

    • 这似乎更接近了!我认为while语句会更合适,但我找不到让它工作的方法。请帮助我多一点!编译器在“num = num + 1”行收到“溢出”错误。我以前从未见过这个错误,可以修复它吗,或者这个调试还有更多吗?
    • 这意味着num溢出了int的最大值。
    • 尝试将 numInteger 更改为 LongVariant
    • 谢谢!不过还是有一些错误。 “”的意义是什么当我把它们放进去时我得到一个错误,因为编译器正在寻找字符之间的表达式。没有它们,我会收到一个运行时错误,说是对象定义的错误。
    • 想通了还是需要我再研究一下?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2010-11-03
    • 2023-03-30
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多