嵌入工作表sheet1
我有一个名为combobox_test
的表单控件组合框,它选择了值x
除此之外,我还嵌入了一个按钮,当我按下它时,我希望它取combobox_test
的值并将其放在something.Rows(y)
中。但我不能让它工作,我有点沮丧。也许你可以指出我正确的方向
Sub ButtonPressed_sample()
Dim value As String
Set putItRng = Range("theCells")
putItRng.Rows(1) = ActiveSheet.Shapes("combobox_test").Value
End Sub
有什么建议吗?我是VBA的绝对新手,所以请尽可能详细。感谢
答案 0 :(得分:9)
Sub QuickSelect_Change()
With ActiveSheet.Shapes("QuickBox")
MsgBox "My Selected Value " & .ControlFormat.List(.ControlFormat.ListIndex)
End With
End Sub
答案 1 :(得分:7)
我不确定这是你想要的,但这是一个开始。 Shape对象没有Value属性,这是错误的来源。 Dropdown对象已被弃用,但仍然可用。
Sub ButtonPressed_sample()
Set putitrng = Range("theCells")
putitrng.Rows(1) = ActiveSheet.DropDowns("combobox_test").value
End Sub
答案 2 :(得分:3)
ActiveSheet.Shapes("combobox_test").ControlFormat.ListIndex
答案 3 :(得分:1)
putItRng.Rows(1)= ActiveSheet.combobox_test.value
尝试:
activesheet.cells(1,putItRng.column).value=activesheet.combobox_test.value
如果它不起作用,那么你的组合框不会命名为“Combobox Test”
答案 4 :(得分:0)
如前所述,Shape ComboBox没有Value属性。
我使用Shape对象的DrawingObject属性来获取CheckBox FormControl对象。然后,可以像使用任何其他FormControl一样使用此CheckBox对象。
您还应该能够使用DrawinObject从Shape对象获取ComboBox objcet。
如果要获取选定的文本,则可以尝试插入以下代码:
Dim sh as Shape
Dim cB as ComboBox
For Each sh In ws.Shapes
If sh.Type = msoFormControl Then
If TypeOf sh.DrawingObject Is ComboBox Then
Set cB = sh.DrawingObject
...
your code for getting the Data from ComboBox
...
End If
End If
Next
答案 5 :(得分:0)
感谢与这个主题进行斗争,但是这个话题给了我一个答案。我不知道method1或method2引用类型的区别,可以使用.value|.List
属性读取值。拥有一个完全类型化的obj变量会很棒。
Dim obj As Object
Set obj = ws.DropDowns("combo1") ' method 1
Set obj = ws.Shapes("combo1").ControlFormat ' method 2
Debug.Print obj.value & "|" & obj.List(obj.value) ' 1...n|Text1,Text2,..n