List 如何在单元格中创建列表,使用VBA从组合框中选择并选择按钮?

List 如何在单元格中创建列表,使用VBA从组合框中选择并选择按钮?,list,vba,excel,combobox,List,Vba,Excel,Combobox,我有一个充满值的组合框。我想在组合框中选择一个值,然后单击“添加”按钮将该值放入下面的一些单元格中。我可以使用以下代码将一个项目添加到列表中,但我希望能够添加多个项目。我觉得我很接近,我只需要一些调整 Private Sub CommandButtonAddItem_Click() Dim ws As Worksheet Dim box As ComboBox Dim food As String Dim num As Integer num = 19 Set ws = Worksheet

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

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
试试这个

如果默认单元格已经被占用,它将一直向下,直到找到一个不是空的单元格,然后将值放入该单元格

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的最大值。请尝试将num从整数更改为Long或VariantThanks!不过还是有一些错误。当我把它们放进去时,当编译器在字符之间寻找表达式时,我得到了一个错误。如果没有它们,我会得到一个运行时错误,说这是一个对象定义的错误。是否已经解决了,或者需要我进一步研究?