【问题标题】:Get the selected value of a activex combobox using vba使用 vba 获取 activex 组合框的选定值
【发布时间】:2012-01-31 16:17:51
【问题描述】:

如何获取组合框的选定值?

我有一个组合框,其中包含以下值:“Corporate”和“Consumer”。

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

类似这样的:

 string a = combobox.value;

(a -> 消费者)

谢谢

【问题讨论】:

  • @SiddharthRout,他在描述中说他是从 VBA 做的。
  • 是的,他做到了 :) 但上面的代码是 C# ;)

标签: vba excel


【解决方案1】:

如果您的 ComboBox 嵌入在电子表格中,您可以使用:

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

【讨论】:

  • 这是一个正确的答案;但是,我对组合框的名称感到有些困惑(它是 cboName 并且您在其上添加了标准后缀吗?)。此答案假定组合框的名称为“cboNameFromActiveXProperties”同样,如果您的组合框名为“ComboBox1”,那么您将使用以下语法:a = Worksheets("YourWorksheetName").OLEObjects("ComboBox1").Object.Value
【解决方案2】:

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

试试这个:

Dim a as String

a = combobox.Value

【讨论】:

  • 它没有用。组合框名称设置为“CBSegmento”,所以我完全按照你说的做了。 Dim Seg As String Seg = CBSegmento.Value 错误:运行时错误'424':需要对象
  • 您的代码在哪里? ComboBox 是在用户表单上还是直接在电子表格上的某个地方?
猜你喜欢
  • 1970-01-01
  • 2013-08-15
  • 2011-10-17
  • 2011-08-08
  • 2013-08-07
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多