早在VBA的旧时代,我们曾经能够通过名称直接访问表单上的控件。对于如何在VBA 2010中做到这一点,我有点困惑(或者如果甚至可能的话)。从另一个控件的回调中更新iRibbon控件的内容
说我有一个名为“channelList”的下拉列表的功能区控件,并在功能区上的其他位置我有一个名为“labelText”的文本框。这些项目中的每一个都有一个唯一的回调函数 - 当我在labelText中输入内容时,它的回调会触发,当我从channelList列表框中选择一个项目时,它的回调将作为参数传递给列表项目。
我被难倒的地方是我如何用channelList回调中的'something'来更新labelText文本框的内容。
有没有办法从列表框回调中直接访问文本框控件,还是必须生成某种事件?我将使用什么方法或功能来设置控件的文本值? (我是否需要将IRibbonControl对象投射到某物上?)
无效的控制对我来说很有意义,但我还是不知道如何设置从回调函数新的文本框的值,因为LabelText的色带控制似乎并没有任何方法或暴露于VBA(我无论如何可以找到)。我需要调用什么方法来实际设置文本,以及在哪里/如何记录?我无情地搜索了VBA的帮助。 –
你不会在VBA帮助中找到它。您需要搜索功能区相关的帖子。另外,你应该使用某种Ribbon UI编辑器。我使用[Andy Pope's](http://www.andypope.info/vba/ribboneditor.htm)。当我看到它时,我看到一个EditBox和Label控件,没有“labelText”控件。我看到的事件是EditBox.GetText和Label.GetLabel。请注意,这个东西起初很混乱。理想情况下,我会得到一本解决功能区定制的书 - 也许是专业的Excel开发。 –
labelText是我分配EditBox控件的名称。我使用Microsoft Office的自定义用户界面编辑器,这是100%纯粹的骨骼。我会把你的建议放在一本书上,看看你的建议程序。 2010 VBA是从2003年开始的一种模式转变 - 早期的这种Ribbon功能,它基本上就像一种新语言。我从流利到完全文盲。 –