我有一个工作簿,其设计目的实质上是作为一个独立的应用程序进行操作。所有工作表均受保护,每个Excel标签都被隐藏,整个工作簿的顶部excel功能区也被隐藏。
下面的VBA代码执行上述过程,并应用于工作簿中的每个工作表。
Sub masque()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayFullScreen = True
Application.DisplayStatusBar = Not Application.DisplayStatusBar
Application.WindowState = xlMaximized
ActiveWindow.WindowState = xlMaximized
Application.DisplayFormulaBar = False
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
我想使用以下代码作为按钮来覆盖先前的代码,以便个人可以轻松地在“编辑器”模式和“用户模式”之间切换
Sub masteredit()
Application.ScreenUpdating = False
ActiveWindow.View = xlNormalView
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayStatusBar = False
ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
Application.ScreenUpdating = True
什么是完成此任务的好方法?
答案 0 :(得分:0)
好吧,您可能拥有预定类型的用户,例如,默认情况下,该应用程序将用于user_mode。因此,您使用了一个名为auto_open()的特殊子项,该子项将在每次打开工作簿时运行。所以我们有
sub auto_open()
call masque
end sub
并且您可以随时在编辑器模式和用户模式之间切换时添加按钮。您可以将sub auto_open()放在所需的任何模块中,因为Vba会将其检测为特殊
答案 1 :(得分:0)
解决了这个问题。
我忘了我在工作簿的每张纸上都有以下代码。
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(link))
.setDynamicLinkDomain("richdad.page.link")
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder("in.geekunit.richdad").build())
.buildDynamicLink();
General.Show(MainActivity.this, "Long link " + dynamicLink.getUri().toString());
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(dynamicLink.getUri())
.buildShortDynamicLink().addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task)
{
General.Show(MainActivity.this, "onComplete");
if (task.isSuccessful())
{
mInvitationUrl = task.getResult().getShortLink();
General.Show(MainActivity.this, mInvitationUrl.toString());
}
else
{
General.Show(MainActivity.this, "Error");
}
}
});
因此,每当我尝试导航到其他工作表时,都将使用该遮罩。
为解决我的问题,我从每个页面中删除了先前的代码。然后,我在“主页”页面上添加了一个使用以下代码的复选框。
Sub Worksheet_Open()
Call masque
End Sub
Sub Worksheet_Activate()
Application.ScreenUpdating = False
Call masque
Application.ScreenUpdating = True
End Sub
这样,当您打开工作簿时,将自动应用面具。但是,当您单击复选框时,将进入编辑器模式,并且将应用masteredit子目录。取消选中后,会再次应用面膜。