【问题标题】:How To Get the ActiveX Active Control from a Worksheet in Excel VBA如何从 Excel VBA 中的工作表中获取 ActiveX 活动控件
【发布时间】:2016-05-18 07:48:58
【问题描述】:

我有一个电子表格,其中包含一些 ActiveX 控件,如组合框、文本框等...在每个控件的 Change 事件中,都有一个接收 ActiveSheet 作为参数的函数。这个函数在 MainModule 中。我需要的是从这个 ActiveSheet 中获取活动控件,记住这个控件是一个 ActiveX 控件。

例如,每次我在组合框、文本框等中进行更改时...我调用此函数并通过 ActiveSheet(作为参数传递)我可以知道我是否更改了组合框或文本框或列表框等...

提前致谢。

【问题讨论】:

  • 将控件名称作为参数传递给函数
  • 我试图避免这种情况。没有办法将活动控件识别到 ActiveSheet 中吗?
  • 我不是 100% 确定,但是传递名字是如此容易.. 你为什么要避免?
  • 您需要将工作表传递给函数,还是只传递一个字符串,告诉函数调用它的控件类型?编辑:正如@ScottHoltzman 所说.....我应该刷新
  • 我需要传递工作表(ActiveSheet)。我正在尝试这样做,因为我需要识别不同功能中的活动控件。

标签: excel activex vba


【解决方案1】:

插入一个activeX复选框控件并通过属性窗口将其命名为“chkboxFoo”。

Dim IsFooChecked As Boolean : IsFooChecked = False
IsFooChecked = ActiveSheet.OLEObjects("chkboxFoo").Object.Value
If IsFooChecked Then
    MsgBox "BarMsg! You made it."
Else
    MsgBox "Try to check the checkbox then execute the program. " & _
           "You shall see a msgbox says BarMsg."

参考:http://blogs.infoextract.in/worksheet-controls-automation-using-vba/

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多