Excel VBA 7.64 根据用户名判断是不是机主 不是就禁止他人查看某工作表数据!

一起学习,一起进步~~

之前我们分享了一下进行批量的工作表保护和工作表接触保护的方法,进行工作表的保护的最终目的是防止自己或者是他人不经意的更改部分数据,给我们最终的结果带来影响的情况出现, 他在我们职场工作中的功能大抵也就只能如此这般使用,但是有时候场景对于我们的要求更加高,我们甚至不希望对方看到我们工作表的数据,那么要怎么办?

隐藏?隐藏还是可以取消的!工作表加密?前面说了,只能阻止修改数据,那么直接点,工作薄加密?这么直白,你还发文件给其他人干嘛?so,那有什么好方法呢?

场景说明

现在我们工作表中总共有三个工作表,那么假设其中的第二个工作表就是sheet2是我们的关键工作表,不喜欢被其他人看到,来看看我的方法!

代码区

Private Sub Worksheet_activate()If CreateObject("wscript.network").UserName <> "*****" ThenDebug.Print CreateObject("wscript.network").UserName Worksheets(1).ActivateEnd IfEnd Sub

看似简单,这段代码其实能够实现很强大的功能

  1. 悄无声息的阻止对方激活工作表2

  2. 为了不自找麻烦,在我们自己的电脑上打开是完全没有问题的

  3. 不管是鼠标点击激活,还是用vba代码都没有办法激活这个工作表

有那么是如何强大这个强大的功能的呢?

一起来看看代码分析

代码分析

首先我们需要先明确一点,我们今天的代码所放置的位置

没错,并不是普通的模块中,而是在工作表sheet2中

其实我们这里利用了工作表的事件方法,哪个事件呢?激活事件!

工作表的事件的具体的讲述和说明,我们将会在后面的系列中展开,这里我们针对这个案例,我们应该是放在工作表的激活事件中。

当我们通过鼠标点击工作表,让工作表内容可见的这个过程,其实就是激活工作表, 不管是通过代码来实现还是通过鼠标来实现都是一样的

所以既然我们不希望对方看到,我们就在工作表被激活的时候,进行判断

其实我们可以简单一点,直接执行

Worksheets(1).Activate

这样就是带来一个弊端,我们自己打开sheet2的时候,也没有办法激活,这就有点尴尬了。

所以为了不让自己尴尬,我们就来一个判断,判断当前的电脑的用户名!

是不是很新奇?VBA还可以判断电脑的用户名!

If CreateObject("wscript.network").UserName <> "*****" Then

其实就是简单的一句话,这里直接将****换成你的电脑的用户名就可以了,当然你的用户名最好是设置个特别的,否则正好重复了,就。。。尴尬了。

============================

本节课的案例源码已经上传,需要的小伙伴后台私信“7-64-Z0”,希望大家多支持~~,多多关注 ~ ~

好了,明晚21:00,准时再见!


因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。

(0)

相关推荐