excel 2007 vba与宏完全剖析_Excel怎么保护自己的劳动成果?强制用户启用宏,再加上这一步...

35d090917445a9a471d3002823eb87ee.png

知识改变命运,科技成就未来。

当Excel工作簿中含有VBA代码时,用户在使用时需要启用宏,否则工作簿的某些功能就会失效。或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到侵害,需要强制用户启用宏。看过以下三篇文章的小伙伴也提出同样的问题。

Excel科幻电影效果,文件倒计时销毁功能,网友直呼太科幻

Excel工作表打开一次后自动销毁文件,回收站中都找不到

Excel工作簿自动销毁功能,使用时间到期后自动删除文件

1830ca9fa05655872ebc33803e2d7cef.png

经过两天的深思熟虑终于找到解决问题办法。思路是通过编辑VBA代码,打开Excel工作簿后自动检测宏是否被启用,如果宏处于禁用状态,工作簿会自动隐藏关键数据所在的工作表,此处的隐藏属于深度隐藏,无法直接取消隐藏工作表。

5bb09261bf28c58a557edb2c9ac22b66.gif

步骤一:打开Excel工作簿后,再插入一个新的工作簿Sheet2用来存放关键数据,Sheet1作为提示工作簿,主要功能是提示用户必须强制启用宏和启用宏的方法,否则隐藏关键数据所在的工作表。

Excel在打开含有宏的工作簿时,会提示用户是否启用宏,如果没有做任何提示,此时就需要用户自己动手启用。启用宏的操作步骤依次是:文件→选项→信任中心→信任中心设置→宏设置→启用所有宏→确定。

7f7cd98386e2e7f0404597f217c2feed.png

步骤二:接下来就是编辑VBA代码,打开Visual Basic编辑器后,将以下代码复制粘贴到ThisWorkbook代码窗口中,最后对VBAProject进行加密处理,主要是保护VBA代码不被删除或更改,以保证整个工作簿的安全性。设置完成后关闭Visual Basic编辑器回到工作簿操作界面。

d3c718e278016ced5a887edd1af473ab.png

代码区域:

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim sh As Worksheet

Sheet1.Visible = True

For Each sh In Me.Worksheets

If UCase(sh.Name) <> "SHEET1" Then sh.Visible = xlSheetVeryHidden

Next sh

Me.Save

End Sub

Private Sub Workbook_Open()

Dim sh As Worksheet

For Each sh In Me.Worksheets

If UCase(sh.Name) <> "SHEET1" Then sh.Visible = True

Next sh

Sheet1.Visible = xlSheetVeryHidden

End Sub

32c06f7a17ffb5cf8a282d596073611a.png

步骤三:工作簿的存储也非常重要,需要将Excel工作簿另存为【*.xls】格式或【*.xlsm】格式,因为【*.xlsx】格式无法识别带有宏的工作表,保存后宏会自动清除。

需要注意的是,在宏禁用的情况下,默认隐藏的是除Sheet1工作表之外的其他工作表,请勿将重要数据存放在Sheet1工作表之中。当启用宏后,工作簿会自动隐藏Sheet1工作表。

a55b0e98c7364c49284b137260c825af.png

至此,Microsoft Excel强制用户启用宏的操作方法已经介绍完毕。如果对操作过程有些费解,请浏览查阅前三篇文章获取答案,也许会有不一样的效果。如果感兴趣可以结合前三篇文章的内容,制作属于自己的工作簿,相信您定会让他人大吃一惊。

动动手指点击关注和转发,让更多的人告别加班的烦恼,每天掌握一些科技小技巧,相信也会为您的工作和生活带来便捷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习笔记—Lambda表达式

1、Lambda表达式 Lambda表达式是Java8的新特性。 组成Lambda表达式的三个要素&#xff1a;形式参数&#xff0c;箭头操作符&#xff0c;代码块 Lambda表达式的格式&#xff1a;(形式参数) -> {代码块} //如&#xff1a;(int a, int b) -> {return a b;}形式参数&…

旅途的意义- 献给二十五岁

献给25岁你看过了许多美景你看过了许多美女你迷失在都市里每一分钟的光阴你品尝过夜的都市你看过飘着雨雪的各地你渐渐明白了书本里那些曾经不屑的道理却也在青春的激情里多出了那份胆怯的心情你看到了老板坐在办公室飘窗前&#xff0c;悠然的抽着烟你看到了以前的同学娶妻生子…

Asterisk标准通道变量

在asterisk中&#xff0c;定义了许多变量&#xff0c;或是有些变量能够被其读取。下面给出了它们的列表。在每一个application的帮助文档中&#xff0c;你可以获得更多的信息。所有这些变量都是大写的。 被*标记的变量是内建函数&#xff0c;不能在拨号方案中被设置&#xff0…

angular4输入有效性_Angular 2 用户输入

Angular 2 用户输入用户点击链接、按下按钮或者输入文字时&#xff0c;这些用户的交互行为都会触发 DOM 事件。本章中&#xff0c;我们将学习如何使用 Angular 事件绑定语法来绑定这些事件。以下Gif图演示了该实例的操作&#xff1a;源代码可以在文章末尾下载。绑定到用户输入事…

用python画国旗的程序_用Python的Turtle模块绘制五星红旗

Turtle官方文档 turtle的基本操作 # 初始化屏幕 window turtle.Screen() # 新建turtle对象实例 import turtle aTurtle turtle.Turtle() # 海龟设置 aTurtle.hideturtle() # 隐藏箭头 aTurtle.speed(10) # 设置速度 # 前进后退&#xff0c;左转右转 aTurtle.fd(100) # 前进10…

Java学习笔记——函数式接口

一、函数式接口概述 函数式接口&#xff1a;有且仅有一个抽象方法的接口。 Java中的函数式编程体现就是Lambda表达式&#xff0c;所以函数式接口就是可以适用于 Lambda表达式使用的接口。只有确保接口中有且仅有一个抽象方法&#xff0c;Java中的 Lambda表达式才能顺利地进行推…

windows快捷键

F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话&#xff0c;这意味着“重命名” F3 当你在桌面上的时候是打开“查找&#xff1a;所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRLESC 打开开始菜单 CTRLALTDELETE 在win9x中打开关闭程序对话…

最简单的拨号方案

使用模式匹配和通道变量可以构建一个最简单的最通用的拨号方案。 如下&#xff1a; exten > _XXXX,1,Dial(SIP/${EXTEN}) exten > _XXXX,2,Hangup() 模式匹配规则&#xff1a; 模式总是用一个下划线 _开始&#xff0c;它告诉 Asterisk 要做模式匹配&#xff0c;这不是…

tortoisegit图标消失_TortoiseGit文件夹和文件图标不显示解决方法

今天下载一个demo导入之后发现一个问题&#xff0c;提示导入的R包只有系统默认的 没有项目的&#xff0c;可以看下图 这种情况出现呢不多&#xff0c;但是出现了我就记录下&#xff0c;这个先看看R文件是不是还在 点击Gen包 查看 看看R文件是不是还在&#xff0c;打开一看果然不…

丰田pcs可以关闭吗_丰田新款卡罗拉变化这么大 让老车主陷入沉思

【太平洋汽车网 导购频道】小胖是一名95后的汽车编辑&#xff0c;年纪轻轻又从事汽车编辑这一岗位&#xff0c;大家可能会觉得他肯定是一位充满热血、喜欢驾驶、热爱汽车的年轻人&#xff0c;那如果我告诉你小胖的座驾是一辆老卡罗拉(询底价|查参配)&#xff0c;你还会觉得小胖…

Java学习笔记——Stream流

一、Stream流的生成方式 1、collection集合可以用默认方法stream生成流。 如 ArrayList<String> list new ArrayList<String>();list.stream().forEach(); 2、Map集合间接生成 3、数组通过Stream接口的静态方法of(T... values)生成流。二、Stream流的中间操作方法…

Excel VBA遍历文件

休息日&#xff0c;无聊的上Excel Home看看有啥东东可学习&#xff0c;有啥问题能帮帮忙。看到很多帖子都是求助遍历特定文件夹下文件的实现方法。有朋友说03版Excel有FileSearch对象可以遍历文件夹下文件&#xff0c;07版中没有了FileSearch对象&#xff0c;不知如何遍历文件。…

C++中的explicit关键字

在C程序中很少有人去使用explicit关键字&#xff0c;不可否认&#xff0c;在平时的实践中确实很少能用的上。再说C的功能强大&#xff0c;往往一个问题可以利用好几种C特性去解决。但稍微留心一下就会发现现有的MFC库或者C标准库中的相关类声明中explicit出现的频率是很高的。了…

pline加点lisp_用Autolisp 在AutoCAD中实现多种曲线的绘制

用Autolisp 在AutoCAD中实现多种曲线的绘制一、引言&#xff1a;AutoCAD自1982年由Autodesk公司推出以来&#xff0c;经历了20年的发展更新&#xff0c;目前&#xff0c;已深入到包括机械、建筑、服装、航天航空、地质气象等等的众多领域中。AutoCAD已成为众多工程设计人员的首…

python从小白到大牛pdf 下载 资源共享_Kotlin从小白到大牛 (关东升著) 中文pdf高清版[12MB]...

本书是一本Kotlin语言学习立体教程&#xff0c;主要内容包括&#xff1a;Kotlin语法基础、Kotlin编码规范、数据类型、字符串、运算符、程序流程控制、函数、面向对象基础、继承与多态、抽象类与接口、高阶函数、Lambda表达式、数组、集合、函数式编程API、异常处理、线程、协程…

MySQL——基本配置

一、新建配置文件 在MySQL的安装目录下D:\Mysql\mysql-8.0.28-winx64\bin中新建一个文本文件&#xff0c;文件内容如下&#xff1a; [mysql] default-character-setutf8[mysqld] character-set-serverutf8 default-storage-engineINNODB sql_modeSTRICT_TRANS_TABLES,NO_ZERO_…

iphone win7无法识别_win7系统电脑不能识别iphone苹果设备的解决方法

win7系统使用久了&#xff0c;好多网友反馈说win7系统电脑不能识别iphone苹果设备的问题&#xff0c;非常不方便。有什么办法可以永久解决win7系统电脑不能识别iphone苹果设备的问题&#xff0c;面对win7系统电脑不能识别iphone苹果设备故障问题&#xff0c;我们只需要1)你的苹…

SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别

今天写程序时候&#xff0c;服务器端启动了&#xff0c;然后客户端总是连接不上&#xff0c;connect返回错误号是10061&#xff0c;服务器积极拒绝请求。 用telnet连接一下端口&#xff0c;发现服务端服务没有开启&#xff0c;但是我程序是启动的&#xff0c;用netstat -a 命令…

在mac上用文本编辑器写python_Mac系统Python解释器、PyCharm编辑器安装及使用方法详解...

『环境配置』- 工欲善其事&#xff0c;必先利其器 视频讲解教程&#xff1a;[Mac系统Python开发环境配置教程详解&#xff08;Python技术客栈&#xff09;](https://www.bilibili.com/video/av80761677)【开发环境配置】Mac系统Python开发环境配置教程详解&#xff08;Python技…

hdu 2149 巴什博弈

http://acm.hdu.edu.cn/showproblem.php?pid2149 分析&#xff1a;就是巴什博弈的概念。 题目要求&#xff1a;对于每组数据&#xff0c;在一行里按递增的顺序输出Lele第一次可以加的价。两个数据之间用空格隔开。如果Lele在第一次无论如何出价都无法买到这块土地&#xff0c;…