运行macros时更改多个function区button的标签的VBA代码

我已经使用这里提供的电子表格来创build一个function区,只要把macros指定给button,它就可以很好地工作。 不过,我想包含configuration详细信息在一个选项卡的组中,使其始终可见,而无需消耗Excel表格的房地产。 这是自定义选项卡中的待定状态: 组

我有一个小的macros来select环境,并确定图像中显示的各个字段的值。 这是代码的样子:

Sub Change_Configuration() Dim ConfigButton As Object Dim Labeling As String 'SelectEnvironment.Show Environment = "PROD" If Environment = "QAS" Then SourceSystem = "ABC" TargetSystem = "DEF" SourceSchema = "EFG" TargetSchema = "GHI" ElseIf Environment = "PROD" Then SourceSystem = "IJK" TargetSystem = "JKL" SourceSchema = "LMN" TargetSchema = "NOP" End If GetLabel ConfigButton, Labeling 'I do not know what to do here End Sub 

我知道Get Label就是这样做的,但我不知道如何实现我想达到的效果。 我当前的GetLabelcallback工作正常,当我打开Excel文件并正确填充默认值(中频部分)。 我试图包含“Else”部分来更新标签,但它不起作用。

原始代码:

 Sub GetLabel(ByVal control As IRibbonControl, ByRef Labeling) Select Case control.ID Case "CustomTab": Labeling = "TEST_RIBBON" Case "GroupE": Labeling = "Configuration Details" Case "eButton01": Labeling = "Change Environment" Case "eButton02": Labeling = "Selected Environment" & " - " & "QAS" Case "eButton03": Labeling = "Source System" & " - " & "ABC" Case "eButton04": Labeling = "Source Schema" & " - " & "DEF" Case "eButton05": Labeling = "Target System" & " - " & "GHI" Case "eButton06": Labeling = "Target Schema" & " - " & "IJK" End Select End Sub 

当我打开Excel时,所有的标签都有上面定义的值。

下面是修改后的代码(基于Change_Configurationmacros修改标签失败)。 请注意,修改后的代码在我的工作簿打开时也不会引发任何错误,并正确显示值。

 Sub GetLabel(ByVal control As IRibbonControl, ByRef Labeling) If Environment = vbNullString Then Select Case control.ID Case "CustomTab": Labeling = "My Tab" Case "GroupE": Labeling = "Configuration Details" Case "eButton01": Labeling = "Change Environment" Case "eButton02": Labeling = "Selected Environment" & " - " & "QAS" Case "eButton03": Labeling = "Source System" & " - " & "ABC" Case "eButton04": Labeling = "Source Schema" & " - " & "DEF" Case "eButton05": Labeling = "Target System" & " - " & "EFG" Case "eButton06": Labeling = "Target Schema" & " - " & "GHI" End Select Else Select Case ConfigButton Case "eButton02": Labeling = "Selected Environment" & " - " & Environment Case "eButton03": Labeling = "Source System" & " - " & SourceSystem Case "eButton04": Labeling = "Source Schema" & " - " & SourceSchema Case "eButton05": Labeling = "Target System" & " - " & TargetSystem Case "eButton06": Labeling = "Target Schema" & " - " & TargetSchema End Select End If End Sub 

非常感谢您的帮助。

-Jevich

解决了它 – 必须在调整XML和Invalidate函数之后包含onloadcallback函数。

太less有关的代码,一定要帮助你通过

但是试着改变一下:

 Select Case ConfigButton 

至:

 Select Case control.ID 

看看会发生什么