Excel 在打开工作簿时保留复选框功能区状态
我在功能区中创建了一个选项卡“MYTAB”,带有两个复选框以隐藏和显示列。 重新打开工作簿时,我需要保留复选框状态 自定义用户界面代码:Excel 在打开工作簿时保留复选框功能区状态,excel,vba,ribbon,Excel,Vba,Ribbon,我在功能区中创建了一个选项卡“MYTAB”,带有两个复选框以隐藏和显示列。 重新打开工作簿时,我需要保留复选框状态 自定义用户界面代码: <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="rxIRibbonUI_onLoad"> <ribbon> <tabs> <tab id="myTab" label="MYTAB">
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="rxIRibbonUI_onLoad">
<ribbon>
<tabs>
<tab id="myTab" label="MYTAB">
<group id="Group1" label="Hide Columns">
<checkBox
id="chkClass12"
label=" Class12"
getPressed="rxClass_getPressed"
onAction="rxClass_onAction"/>
<checkBox
id="chkClass34"
label="Class34"
getPressed="rxClass_getPressed"
onAction="rxClass_onAction"/>
</group>
</tab>
</tabs>
</ribbon>
Public b_chkClass12 As Boolean
Public b_chkClass34 As Boolean
Public MyRibbon As IRibbonUI
Sub rxIRibbonUI_onLoad(ribbon As IRibbonUI)
Set MyRibbon = ribbon
End Sub
Public Sub rxClass_getPressed(control As IRibbonControl, ByRef returnedVal)
Select Case control.ID
Case "b_chkClass12":
returnedVal = b_chkClass12
Case "b_chkClass34":
returnedVal = b_chkClass34
End Select
End Sub
Public Sub rxClass_onAction(control As IRibbonControl, pressed As Boolean)
Select Case control.ID
Case "chkClass12":
b_chkClass12 = pressed
Worksheets("Sheet1").[oClass12].Value = pressed
Call ShowHideColumns("Class12")
Case "chkClass34":
b_chkClass34 = pressed
Worksheets("Sheet1").[oClass34].Value = pressed
Call ShowHideColumns("Class34")
End Select
End Sub
Sub ShowHideColumns(nRange As String)
Range(nRange).EntireColumn.Hidden = Not Range(nRange).EntireColumn.Hidden
End Sub
Private Sub Workbook_Open()
With Worksheets("Sheet1").[oClass12]
If .Value = True Then
b_chkClass12 = True
Else
b_chkClass12 = False
End If
End With
With Worksheets("Sheet1").[oClass34]
If .Value = True Then
b_chkClass34 = True
Else
b_chkClass34 = False
End If
End With
End Sub
此工作簿代码:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="rxIRibbonUI_onLoad">
<ribbon>
<tabs>
<tab id="myTab" label="MYTAB">
<group id="Group1" label="Hide Columns">
<checkBox
id="chkClass12"
label=" Class12"
getPressed="rxClass_getPressed"
onAction="rxClass_onAction"/>
<checkBox
id="chkClass34"
label="Class34"
getPressed="rxClass_getPressed"
onAction="rxClass_onAction"/>
</group>
</tab>
</tabs>
</ribbon>
Public b_chkClass12 As Boolean
Public b_chkClass34 As Boolean
Public MyRibbon As IRibbonUI
Sub rxIRibbonUI_onLoad(ribbon As IRibbonUI)
Set MyRibbon = ribbon
End Sub
Public Sub rxClass_getPressed(control As IRibbonControl, ByRef returnedVal)
Select Case control.ID
Case "b_chkClass12":
returnedVal = b_chkClass12
Case "b_chkClass34":
returnedVal = b_chkClass34
End Select
End Sub
Public Sub rxClass_onAction(control As IRibbonControl, pressed As Boolean)
Select Case control.ID
Case "chkClass12":
b_chkClass12 = pressed
Worksheets("Sheet1").[oClass12].Value = pressed
Call ShowHideColumns("Class12")
Case "chkClass34":
b_chkClass34 = pressed
Worksheets("Sheet1").[oClass34].Value = pressed
Call ShowHideColumns("Class34")
End Select
End Sub
Sub ShowHideColumns(nRange As String)
Range(nRange).EntireColumn.Hidden = Not Range(nRange).EntireColumn.Hidden
End Sub
Private Sub Workbook_Open()
With Worksheets("Sheet1").[oClass12]
If .Value = True Then
b_chkClass12 = True
Else
b_chkClass12 = False
End If
End With
With Worksheets("Sheet1").[oClass34]
If .Value = True Then
b_chkClass34 = True
Else
b_chkClass34 = False
End If
End With
End Sub
保存值的工作表
名称管理器'
问候,,
Elio Fernandes一种方法是将值存储在一个隐藏的工作表中,但我记得有人将它们保存在一个Excel
Name
中,这非常简洁:Ambie,我正在这样做。但当工作簿打开时,复选框为空。我认为工作簿的“打开”过程中缺少了一些内容。我相信它们在打开时会保留默认状态,直到您使功能区无效为止。请告诉我应该如何以及在何处执行。这在我的第一条评论的链接中。