当前位置:首页 > 教育 >

宏被禁用了怎么开启(宏命令被禁用如何开启)

来源:原点资讯(www.yd166.com)时间:2024-11-15 11:32:42作者:YD166手机阅读>>

有朋友问:如果用户工作簿禁用了宏,怎样对特定工作表进行隐藏,让用户无法查看?只有当宏被打开时显示其他工作表?

宏被禁用了怎么开启,宏命令被禁用如何开启(1)

宏被禁用提示

下表是当用户禁用工作簿宏时,隐藏其他工作表的同时显示提示:

宏被禁用了怎么开启,宏命令被禁用如何开启(2)

提示表提示界面

要实现这样的功能,我们可以通过实现Workbook_Open、Workbook_BeforeClose、Workbook_BeforeSave等事件处理程序,我们可以控制工作簿在打开、关闭和保存时的行为。例如,在打开工作簿时自动显示所有工作表,并在关闭前检查是否需要保存更改;通过拦截标准的保存操作,我们可以调用自定义的保存函数CustomSave,该函数允许用户选择保存位置、格式,并在保存前隐藏所有非警告工作表,以避免不必要的干扰或数据泄露。同时,将介绍如何编写HideAllSheets和ShowAllSheets子程序来智能管理工作表的可见性。这些子程序将帮助用户隐藏除警告工作表外的所有工作表,并在需要时重新显示它们,从而保护敏感数据或简化工作簿的视图。代码片段如下:

' 强制显式声明变量 Option Explicit ' 将警告工作表的名称分配给一个常量 Const Warning As String = "提示" ' 工作簿打开时自动执行的宏 Private Sub Workbook_Open() ' 关闭屏幕更新 Application.ScreenUpdating = False ' 调用显示所有工作表的例程 Call ShowAllSheets ' 将工作簿的已保存属性设置为True Me.Saved = True ' 打开屏幕更新 Application.ScreenUpdating = True End Sub ' 工作簿关闭前执行的宏 Private Sub Workbook_BeforeClose(Cancel As Boolean) ' 声明变量 Dim Ans As Integer ' 如果工作簿的已保存属性为False,则模拟Excel的默认保存提示 If Me.Saved = False Then Do Ans = MsgBox("你想保存对 '" & Me.Name & "' 的更改吗?", vbQuestion vbYesNoCancel) Select Case Ans Case vbYes ' 调用自定义保存例程 Call CustomSave Case vbNo Me.Saved = True Case vbCancel Cancel = True Exit Sub End Select Loop Until Me.Saved End If End Sub ' 工作簿保存前执行的宏 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ' 取消常规保存 Cancel = True ' 调用自定义保存例程 Call CustomSave(SaveAsUI) End Sub ' 自定义保存例程 Private Sub CustomSave(Optional SaveAs As Boolean) ' 声明变量 Dim ActiveSht As Object Dim FileFormat As Variant Dim FileName As String Dim FileFilter As String Dim FilterIndex As Integer Dim Msg As String Dim Ans As Integer Dim OrigSaved As Boolean Dim WorkbookSaved As Boolean ' 关闭屏幕更新 Application.ScreenUpdating = False ' 关闭事件,防止在保存时再次触发BeforeSave事件 Application.EnableEvents = False ' 将工作簿的已保存属性保存到变量 OrigSaved = Me.Saved ' 获取当前活动的工作表 Set ActiveSht = ActiveSheet ' 调用隐藏所有工作表(除了提示工作表)的例程 Call HideAllSheets ' 根据是否需要另存为或路径为空,处理保存逻辑 ' ...(此处省略了部分逻辑以保持注释简洁) '... ' 调用显示所有工作表的例程 Call ShowAllSheets ' 激活之前的活动工作表 ActiveSht.Activate ' 根据是否成功保存,更新工作簿的已保存属性 If WorkbookSaved Then Me.Saved = True Else Me.Saved = OrigSaved End If ' 打开屏幕更新 Application.ScreenUpdating = True ' 打开事件 Application.EnableEvents = True End Sub Private Sub HideAllSheets() Dim Sh As Object Sheets("提示").Visible = xlSheetVisible For Each Sh In Sheets If Sh.Name <> Warning Then Sh.Visible = xlSheetVeryHidden End If Next Sh End Sub Private Sub ShowAllSheets() Dim Sh As Object For Each Sh In Sheets If Sh.Name <> Warning Then Sh.Visible = xlSheetVisible End If Next Sh Sheets("提示").Visible = xlSheetVeryHidden End Sub Private Function IsLegalFilename(ByVal fname As String) As Boolean Dim BadChars As Variant Dim i As Long If Len(fname) > 218 Then IsLegalFilename = False Exit Function Else BadChars = Array("\", "/", "<", ">", "?", "[", "]", ":", "|", "*", """") fname = GetFileName(fname) For i = LBound(BadChars) To UBound(BadChars) If InStr(1, fname, BadChars(i)) > 0 Then IsLegalFilename = False Exit Function End If Next i End If IsLegalFilename = True End Function Private Function GetFileName(ByVal FullName As String) As String Dim i As Long For i = Len(FullName) To 1 Step -1 If Mid(FullName, i, 1) = Application.PathSeparator Then Exit For Next i GetFileName = Mid(FullName, i 1) End Function

通过本篇文章,读者将学习到如何通过VBA编程来扩展Excel的功能,使其更加符合个人或团队的特定需求。

,

栏目热文

怎样启用宏功能(怎么关闭启用宏的功能)

怎样启用宏功能(怎么关闭启用宏的功能)

如何启用宏功能How to Enable Macro Functionality在现代办公软件中,宏功能是一个强大的工具...

2024-11-15 11:31:27查看全文 >>

电脑启用宏设置是什么意思(电脑怎样启用宏功能)

电脑启用宏设置是什么意思(电脑怎样启用宏功能)

相信很多小伙伴遇到过这种情况,在打开一张表的时候会出现如下的界面:这种情况是因为表格中带有宏代码,Excel担心代码运行...

2024-11-15 11:20:22查看全文 >>

怎么启用宏功能(宏禁用了怎样启用宏功能)

怎么启用宏功能(宏禁用了怎样启用宏功能)

怎么设置宏 (How to Set Up Macros)在现代办公软件中,宏是一种非常有用的功能,它可以帮助用户自动化重...

2024-11-15 11:53:23查看全文 >>

启用宏和禁用宏的区别(启用所有宏还是所有宏被禁用)

启用宏和禁用宏的区别(启用所有宏还是所有宏被禁用)

【分享成果,随喜正能量】睿智的人看得透,故不争。豁达的人想得开,故不斗。得道的人晓天意,故不急。厚德的人重谦和,故不噪。...

2024-11-15 11:29:29查看全文 >>

甲虫100张图片(甲虫图片大全及名称介绍)

甲虫100张图片(甲虫图片大全及名称介绍)

01、它们色彩斑斓,闪着金属一般的光泽。02、太可怜了。一只树蛙从树上往下跳的时候,不小心被另外一棵树的刺扎穿了身体,一...

2024-11-15 11:25:45查看全文 >>

wps如何启用宏功能(wps怎么设置启用所有宏)

wps如何启用宏功能(wps怎么设置启用所有宏)

WPS启用VBA。本次视频主要为大家讲解如何启用VBA。·现在我收到有一个文件,双击打开这个文件,打开以后它提示我未安装...

2024-11-15 11:48:08查看全文 >>

留白什么意思网络用语(留白这个词从哪里来)

留白什么意思网络用语(留白这个词从哪里来)

为了您更好的阅读互动体验,为了您及时看到更多优质内容,点个“关注”,我们每天为您更新精彩内容。__在台湾眷村长大的王伟忠...

2024-11-15 11:36:41查看全文 >>

留白是最高境界(留白是高级的生活态度)

留白是最高境界(留白是高级的生活态度)

黑为墨, 白为纸 ,三笔两画,神韵皆出,这就是中国画的最高境界 ——留白。中国画的最高境界:留白留白的说法最早来自于国画...

2024-11-15 11:44:52查看全文 >>

留白是一种高级的人生智慧(留白亦是一种生活态度)

留白是一种高级的人生智慧(留白亦是一种生活态度)

年少时,总觉得做任何事情,都要全力以赴。以为只有这样才不会给人生留下遗憾。可是后来,慢慢明白,很多事情,用七八分的力度就...

2024-11-15 11:23:40查看全文 >>

为什么要给人生留白(人生的留白经典语录大全)

为什么要给人生留白(人生的留白经典语录大全)

1前一阵,我拜访了一位国画老师。老师以墨竹作品享誉画坛,他的每幅作品都留有大幅的空白,给人无尽的想象。老师告诉我,他潜心...

2024-11-15 11:25:48查看全文 >>

文档排行