![499a5cfa51fa18be299b413df4d8ad43.png](https://i-blog.csdnimg.cn/blog_migrate/87a552a2172c76ae39aa004f04fb0806.jpeg)
大家好,我们今日继续讲解VBA代码解决方案的第73讲内容:为某台电脑量身定做VBA程序。在写程序的时候,我们有时候需要为某台电脑来编写专门的程序,让程序只在这台电脑上运行这个问题该如何解决呢?这就要在程序启动前先检查一下电脑的名称,是不是我们事先告诉给程序的名称。这时会用到一个Environ函数,这个函数可以事先我们的功能。
Environ函数返回String,关连一个操作系统环境变量,
语法如下:Environ({envstring | number})
参数
a) envstring是可选的,包含一个环境变量名的字符串表达式。如果在环境字符串表格中找到参数envstring,则Environ函数返回在环境字符串表格中对应那个环境变量的等号后面的那段文本。
b)Environ("Computername")返回电脑名称,如果需要取得当前登录用户的用户名则使用Environ("UserName")。
C) number是可选的,用来表示环境字符串在环境字符串表格中的数值顺序。number 参数可以是任意的数值表达式,不过在计算前,它会先转换为一个整数。
特别注意点1:此函数 在 Macintosh 中不可用
特别注意点2:如果在环境字符串表格中找不到 envstring,则会返回一个零长度字符串 ("")。如果找到,则 Environ 会返回一段文本,文本是赋值给指定的 envstring 的,也就是说,在环境字符串表格中对应那个环境变量的等号 (=) 后面的那段文本。
如果指定了 number,则在环境字符串表格中相应位置上的字符串会返回。在这种情况下,Environ 会返回整个文本,包括 envstring。如果在指定位置上没有环境字符串,那么 Environ 会返回一个零长度字符串。
为了实现使用VBA开发的程序只能在某一特定的电脑中使用,那么可以在程序开始时检查当前电脑的名称是否是指定的名称,如下面的代码所示。
Private Sub Workbook_Open()
Dim myName As String
myName = Environ("Computername")
If myName <> "NN" Then
MsgBox "对不起您不是合法用户,文件将关闭!"
ThisWorkbook.Close
End If
End Sub
代码解析:
工作簿的Open事件过程,在工作簿打开时判断电脑的名称,如果不是“NN”则退出关闭工作簿。
第3行代码取得电脑的名称。
第4行到第7行代码,如果当前电脑不是指定的电脑,关闭工作簿。在实际应用中需要配合其他方法使用户在打开时强制启用宏才能达到这一效果。
代码截图:
![663492578d8cd84349dab33984549d22.png](https://i-blog.csdnimg.cn/blog_migrate/3f6e4311c057c9491902de5d504dd983.jpeg)
运行:
![e1fb25c21e4b0456679501371a73fc84.png](https://i-blog.csdnimg.cn/blog_migrate/5d05fed6ec15df1290688cad3b984513.jpeg)
点击确认后,程序将关闭:
![ad3f5e06a978d39673849b697ee60d1c.png](https://i-blog.csdnimg.cn/blog_migrate/99b26a9410bcad1de27df0cec53a08ef.jpeg)
今日内容回向:
1 如何为某计算机量身定做程序?
2 Environ函数的意义是什么?
欢迎大家到我的自媒体平台沟通交流:个人微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。
这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。
工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。