对象值的onchange事件

时间:2015-07-27 18:59:27

标签: vba class events onchange

现在我正在尝试使用支持VBA的软件包(并具有自己的导航功能)为用户界面开发导航。内置导航功能缺少我在导航栏上标记的方法我创建了哪个选项卡,所以我决定根据当前加载的屏幕进行操作。

我遇到的问题是,当加载新屏幕时,我无法触发我的子程序。下面是我现在所拥有的(我误解了Application_DisplayLoad()事件,因此它永远不会触发)。

触发功能

.banner div{
    text-align:center;   
}
.banner h2, .banner p{
    font-family:"Oswald", Arial, sans-serif;
    font-size: 2em;
    line-height: 1.4em;
    text-transform:uppercase;
    text-align:center;
    display: inline;
    padding: 0 30px;
    background: #176072;
    color:white;
}
.banner h2:first-of-type{
    margin-bottom:0.2em;
}
em{
    width:30px;
    display:inline-block;
}

此代码在手动执行时工作正常。我需要它在加载屏幕时执行。我想这样做的方法是从我在下面写的函数中监控一点:

Private Sub Application_DisplayLoad()
        If RtDisplayLoaded(sBotNavButton_1_1_Display) Then
            Call ArrangeFooter(1, 1)

        ...
End Sub

如果您注意到Application.LoadedDisplays对象Option Compare Text '/* RtDisplayLoaded - Returns true or false based on whether or not a display ' * is currently loaded. ' * ' * sDisplayName: Name of display to check. ' */ Function RtDisplayLoaded(ByVal sDisplayName As String) As Boolean Dim i As Integer Dim oLoadedDisplays As Object: Set oLoadedDisplays = Application.LoadedDisplays RtDisplayLoaded = False For i = 1 to oLoadedDisplays.Count If oLoadedDisplays.Item(1) = sDisplayName Then RtDisplayLoaded = True Exit For End If Next i End Function ,您会看到我引用了一个名为oLoadedDisplays的点。有没有办法可以监控这一点并在第一块代码发生变化时触发它?

我希望我的最终结果看起来像这样(其中oLoadedDisplays现在是一个set = to Application.LoadDisplays的公共对象):

oLoadedDisplays.Count

真的很难过这里去哪里。 (顺便说一下,我是VBA的新手)

0 个答案:

没有答案