2012-01-31 133 views
1

如何获取组合框的选定值?使用vba获取activex组合框的选定值

我有一个组合框具有值:“公司”和“消费者”。

我想获取我选择的值,而不是索引,并存储在一个字符串中。

是这样的:

string a = combobox.value; 

(A - >消费)

谢谢

+0

你从这样做C#? – 2012-01-31 16:56:49

+0

@SiddharthRout,他说他是从VBA做这个描述的。 – 2012-01-31 17:33:34

+0

是的,他确实:)但上面的代码是C#;) – 2012-01-31 17:34:47

回答

1

Value在VBA一个大写字母 “V”,但假设combobox是ComboBox的名字你在屏幕上创建的代码将会工作(除了你的赋值语句是错误的,请参见下文)。如果您不知道ComboBox的名称是什么,则很可能是ComboBox1。要检查,请查看VBA属性窗口中的Name属性。

试试这个:

Dim a as String 

a = combobox.Value 
+0

它没有工作。组合框名称设置为“CBSegmento”,所以我完全按照您的说法进行操作。 昏暗赛格作为字符串 SEG = CBSegmento.Value 错误: 运行时error'424' : 所需的对象 – Raphael 2012-01-31 16:31:57

+0

哪里你的代码驻留?组合框是在用户窗体上还是在电子表格上? – 2012-01-31 17:34:12

5

如果你的组合框嵌入到电子表格中,你可以使用这个:

Dim ws as Worksheet 
Dim cboCorpConsumer as ComboBox 
Dim a as String 

Set ws = Worksheets("YourWorksheetName") 
Set cboCorpConsumer = ws.OLEObjects("cboNameFromActiveXProperties").Object 

a = cboCorpConsumer.Value 

或者在同一行:

a = Worksheets("YourWorksheetName").OLEObjects("cboNameFromActiveXProperties").Object.Value 
+0

这是一个正确的答案;但是,我对组合框的名称有些困惑(是cboName,你在它上面加了一个标准后缀?)。这个答案假定组合框的名称是“cboNameFromActiveXProperties”同样,如果你的组合框被命名为“ComboBox1”,那么你将使用这种语法:'a = Worksheets(“YourWorksheetName”)。OLEObjects(“ComboBox1”)。Object.Value ' – GlennFromIowa 2017-06-02 18:44:39