Excel 将列表框中的项目添加到其他VBA

Excel 将列表框中的项目添加到其他VBA,excel,vba,Excel,Vba,我有以下列表,我需要从列表“Liste de toute les lames”中选择一个项目,然后单击“Ajour lames enService”按钮上的IG,该项目将添加到列表“lames en Service”中: 守则: Private Sub Ajout_Lame_S_Click() Dim ws_Lame As Worksheet Dim Modele As String Dim dl As Integer Modele = "Liste_Lame_" &

我有以下列表,我需要从列表“Liste de toute les lames”中选择一个项目,然后单击“Ajour lames enService”按钮上的IG,该项目将添加到列表“lames en Service”中:

守则:

Private Sub Ajout_Lame_S_Click()
Dim ws_Lame As Worksheet
Dim Modele As String
Dim dl As Integer
Modele = "Liste_Lame_" & Me.TextBox1.Value
If Me.ListBox_Lames.ListIndex = -1 Then
    MsgBox ("Veuillez choisir une lame de la liste de toutes les lames")
Else
    Set ws_Lame = ActiveWorkbook.Worksheets(Modele)
    dl = ws_Lame.Range("A65530").End(xlUp).Row
    ws_Lame.Activate
    Nom_LamesS = Me.ListBox_Lames.Value
    ws_Lame.Cells(dl + 1, 5) = Nom_LamesS
    'Mettre a jour la liste
    For i = 2 To dl
        Me.ListBox_LamesS.AddItem ws_Lame.Range("E" & i)
    Next
End If
MsgBox ("Lame ajoutée a la liste lames en Service!")
End Sub

我不知道我的代码有什么问题,但我的目标列表中没有添加任何内容。

从字面上理解你的问题,如果你想将一行从一个列表框复制到另一个列表框,你需要使用的代码是

Private Sub CommandButton1_Click()
    
    Dim I As Long
    
    With Me.ListBox1
        If .ListIndex <> -1 Then
            Me.ListBox2.AddItem
            For I = 0 To .ColumnCount - 1
                Me.ListBox2.List(Me.ListBox2.ListCount - 1, I) = .List(.ListIndex, I)
            Next I
        End If
    End With

End Sub
Private子命令按钮1\u单击()
我想我会坚持多久
和我一起
如果.ListIndex为-1,则
Me.ListBox2.AddItem
对于I=0到.ColumnCount-1
Me.ListBox2.List(Me.ListBox2.ListCount-1,I)=.List(.ListIndex,I)
接下来我
如果结束
以
端接头

调试代码(),使用F8一步一步地完成。在每个步骤中检查变量的值。这样你就可以发现哪里出了问题。试试看。我用E65330替换了A655330,现在可以使用了:)请注意,较新版本的Excel有超过
65530
。千万不要硬编码这个号码,否则你很快就会遇到问题。相反,请使用
dl=ws_Lame.Cells(ws_Lame.Rows.Count,“E”).End(xlUp).Row
查找列E中最后使用的行。非常感谢您的回答。它确实帮了我很多忙,我不再指定行数,因为它总是给我带来问题,我不知道谁应该延迟定义dl。谢谢