【发布时间】:2017-04-27 17:08:24
【问题描述】:
我正在尝试创建一个简单的基于工作表的表单,它将数据从选择中提取到 Excel 工作簿上的另一个工作表中。这是我第一次弄乱 Visual Basic 和 ActiveX 控件,我没有太多的编程经验,但是通过大量的谷歌搜索,到目前为止我已经设法应付了一些。
有问题的部分:我有几个多选框,只需单击一个按钮,即可使用以下代码将数据推送到电子表格中:
Private Sub CommandButton1_Click()
Dim I As Long
Range("A10").Select
Range(Selection, Selection.End(xlToRight)).ClearContents
With Me.ListBox1
For I = 0 To .ListCount - 1
If .Selected(I) Then
Flg= True
txt = txt & "," & .List(I)
End If
Next
End With
If Flg Then
With Sheets("Sheet1")
.Range("A10").Value = Mid$(txt, 2)
End With
End If
txt=""
'Repeat for each listbox'
End Sub
只要用户在每个列表框中选择了至少一项,就可以很好地提取数据,然后我就可以做我需要的事情。但是我不想要求用户在每个框中单击(也就是说,如果他们不想在该框中选择某些内容,我想我可以强制他们单击空选择,但是只让他们根本不选择任何东西)。但是(可以理解)当在给定框中没有选择任何内容时,我上面粘贴的代码会返回运行时错误 1004:没有选择要解析的数据。
如何允许用户在框中不进行任何选择,并且在检索数据时让代码将关联的单元格留空?
【问题讨论】:
标签: excel vba listbox multi-select