我有一个列表框,我设置为selectmulti
我试图用这个来获取所选项目的值:
Private Sub CommandButton3_Click()
Dim lItem As Long
Dim nboc As Integer
Dim c As Integer
Range("G:G").Clear
nboc = Worksheets("BDD").Range("IQ2").Value
c = 0
For lItem = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(lItem) = True Then
c = c + 1
Worksheets("Bordereau Prep").Range("G15:G" & 14 + c) = ListBox2.List(lItem)
ListBox2.Selected(lItem) = False
End If
Next
End Sub
只要我选择了一个项目,这就有效。如果我选择了x个项目,则会返回第一个项目的x倍。
你能帮帮我吗? (我对VBA很新,我想自己学习)答案 0 :(得分:1)
这一行:
Worksheets("Bordereau Prep").Range("G15:G" & 14 + c) = ListBox2.List(lItem)
您覆盖此功能先前打印的值。
在第一次迭代中,您打印范围G15:G15(在这种情况下为单个单元格)的每个单元格中的值,在第二次迭代中,您打印范围G15:G16的每个单元格中的值(因此您覆盖打印的值)第一次迭代)等等。
您需要更改此行,如下所示:
Worksheets("Bordereau Prep").Range("G14").Offset(c, 0) = ListBox2.List(lItem)
答案 1 :(得分:1)
你的问题在于:
if ( $( ".element" ).next().index() == $( ".element" ).next( ".element" ).index() )
{
alert( "yes" );
$( ".element" ).wrap( "<div class='container'></div>" );
}
else
{
alert( "no" );
}
它只是将整个范围分配给最后找到的值。这是适合你的东西,你可以以某种方式进一步使用它并改变它。
Worksheets("Bordereau Prep").Range("G15:G" & 14 + c) = ListBox2.List(lItem)
最后但并非最不重要的是,您尝试不在VBA中使用Integers,但是很长。享受吧!