首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >excel vba:如何将组合框值粘贴到下一列单元格

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

Stack Overflow用户
提问于 2018-04-01 13:08:13
回答 1查看 1.3K关注 0票数 1

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

例子: Combobox2项目是10-STD,12-40,8-STD.

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

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-01 14:56:50

对于Form Control "Combo Box“,以下代码可以工作:

代码语言:javascript
运行
复制
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,如下所示:

代码语言:javascript
运行
复制
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"))取代

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49598410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档