0

大家好,这是我在这里提出的第一个问题,希望是最后一个问题。我在excel中遇到vba问题,我希望有人能回答

Copy 命令按钮代码的提示:使用 For -Next 循环遍历列表框的每个项目以查看它是否被选中。请记住,列表框是从零开始的。使用列表的 lstListBox.ListCount 属性结束 For-Next 循环。(lstListBox.ListCount - 1) 在 For-Next 循环中,使用 If 语句查看是否使用布尔数据类型的 lstListBox.Selected(intIndex) 属性选择了列表中的项目。如果选择了列表值,则增加一个计数器 (intCounter) 以跟踪选择了多少项并放入语句以将所选列表值显示到电子表格 B 列中的一行。在单元格对象行号中使用此计数器可将列表中的选定项目显示到电子表格的 B 列。示例: Cells(intCounter,"B").Value = lstListBox。

所以我真正想做的是将一些信息从列表框中复制到不同的列中。如果有人可以提供帮助,那就太好了。在我解决这个问题之前不能回家。这就是我到目前为止所拥有的它可能都是垃圾我真的不知道

Private Sub CommandButton1_Click() Dim intNumberOfItemsInList As Integer Dim lstListBoxListCount As Integer Dim ItemsCount As Integer Dim strInput As String Dim intIndex As Integer Dim lstlistbox As ListBox Dim intcounter As Integer

'循环遍历列表中的十个项目 For intNumberOfItemsInList = 0 To 9 '检查是否选择了列表中的项目 如果是则

Next lstlistbox.ListCount - 1
    'increment a counter
    Cells(intcounter, "B").Value = lstlistbox.List(intIndex)
   ' display the selected item from the list in the counter number row of column B of the spreadsheet
   Range("B1:B10").Select
ActiveSheet.Paste
'End the Check or Select structure

End Select

'结束循环结构

结束子

这些评论应该有助于“指导我们”完成该计划,但它对我没有帮助。再次感谢。如果您对此问题有任何疑问,请告诉我。我会尽我所能回答他们。

4

1 回答 1

1

如果您只需要将列表信息复制到其他地方,则列表框对象有一个名为 ListFillRange 的变量,其中包含从中提取数据的范围的字符串。

option explicit
Sub copy_list_items()
    Dim ws as Worksheet
    Dim lstbox as Variant
    Set ws = Sheets("Sheet 1")
    Set lstbox = ws.Shapes("List Box 1").OLEFormat.Object
    /*'' The range for my list box was set using values from the same sheet 
    ''    a few columns away.
    '' Also, ignore/remove the slash star comments, as these will throw an error with 
    '' Excel VBA,*/
    ws.Range(ws.Cells(1,1),ws.Cells(lstbox.ListCount,1)).Value = _
                    ws.Range(lstbox.ListFillRange).Value
End Sub

这适用于您的情况吗?

于 2013-10-30T23:15:10.293 回答