Excel 创建列表框

Excel 创建列表框,excel,ms-access,listbox,vba,Excel,Ms Access,Listbox,Vba,我正在尝试使用VBA从Access创建Excel报表。因此,每次用户单击Access表单中的按钮时,都应该生成一个Excel文件。我需要在文件中有列表框。我正在声明ListBox添加项,但在将其分配给特定单元格时遇到问题: Dim lst As ListBox With lst .AddItem "1" .AddItem "2" End With 现在我想在单元格(7,1)中显示列表框 如何操作?一个简单的解决方案是利用数据验证直接在单元格中创建下拉列表。这样还可以避免使用可能会弃用的组件 在

我正在尝试使用VBA从Access创建Excel报表。因此,每次用户单击Access表单中的按钮时,都应该生成一个Excel文件。我需要在文件中有列表框。我正在声明ListBox添加项,但在将其分配给特定单元格时遇到问题:

Dim lst As ListBox
With lst
.AddItem "1"
.AddItem "2"
End With
现在我想在单元格(7,1)中显示列表框


如何操作?

一个简单的解决方案是利用数据验证直接在单元格中创建下拉列表。这样还可以避免使用可能会弃用的组件

在您的情况下,这可能会运行以下代码:

Dim list(1) As String
list(0) = "1"
list(1) = "2"

With Cells(1, 7).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:=Join(list, ",")
End With

使用Join添加验证的灵感来自。

一个简单的解决方案是利用数据验证直接在单元格中创建下拉列表。这样还可以避免使用可能会弃用的组件

在您的情况下,这可能会运行以下代码:

Dim list(1) As String
list(0) = "1"
list(1) = "2"

With Cells(1, 7).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:=Join(list, ",")
End With

使用Join添加验证的灵感来自。

感谢您的回答。我试过了,但出现运行时错误1004。什么时候?你是如何使用代码的?它在这里工作得非常好。我在使用XLAPON按钮单击事件函数下使用它我在使用“代码”创建excel文件设置xlapp=CreateObject(“excel.Application”)“使用xlapp.Workbooks.Add创建excel应用程序对象”在excel.ActiveSheet.Paste中添加新工作簿特殊格式:=“文本”,链接:=False,DisplayAsIcon:=False我很确定您的问题超出了问答的范围。尝试在新工作簿中的空方法中执行上述代码,看看是否会引起任何问题。谢谢您的回答。我试过了,但出现运行时错误1004。什么时候?你是如何使用代码的?它在这里工作得非常好。我在使用XLAPON按钮单击事件函数下使用它我在使用“代码”创建excel文件设置xlapp=CreateObject(“excel.Application”)“使用xlapp.Workbooks.Add创建excel应用程序对象”在excel.ActiveSheet.Paste中添加新工作簿特殊格式:=“文本”,链接:=False,DisplayAsIcon:=False我很确定您的问题超出了问答的范围。尝试在新工作簿中的空方法中执行上述代码,并查看是否会导致任何问题。