现在我正在尝试使用支持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的新手)