excel vba:如何将组合框值粘贴到下一个列单元格

时间:2018-04-01 13:08:14

标签: excel vba

我是vba的新手,我想问一下如何在每个单元格中粘贴我从组合框中选择的项目?

实施例: Combobox2项目是10-STD,12-40,8-STD。

我将选择10-STD并且它应该粘贴在E9列上,接下来我将选择12-40它应该粘贴在下一个空单元格E10上,当选择8-STD时它应该粘贴在E11上。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

对于表单控件"组合框"以下代码将起作用:

Sub DropDown1_Change()
    Dim dD As Object
    Dim selectedValue As String

    Set dD = DropDowns("Drop Down 1")

    selectedValue = dD.List(dD.ListIndex)

    If Range("E9") = Empty Then
        Range("E9") = selectedValue
    Else
        lrow = Cells(Rows.Count, 5).End(xlUp).Row
        Cells(lrow + 1, 5) = selectedValue
    End If  
End Sub

对于ActiveX ComboBox,它是以下内容:

Private Sub ComboBox1_Change()
    Dim cB As ComboBox
    Dim selectedValue As String

    Set cB = OLEObjects("ComboBox1").Object

    selectedValue = cB.Value

    If Range("E9") = Empty Then
        Range("E9") = selectedValue
    Else
        lrow = Cells(Rows.Count, 5).End(xlUp).Row
        Cells(lrow + 1, 5) = selectedValue
    End If
End Sub

编辑:正如QHarr所说,代码可以在工作表代码中加入,因此它可以在没有Dim ws As Worksheet Set ws As ActiveWorksheet代码的情况下运行。此外,Range("E9") = Empty可以替换为isEmpty(Range("E9"))