vba 不等于_你不知道的excel高级玩法—点击单元格弹出一个范闲

试玉要烧三日满,辨材须待七年期。大家好,我是IT探险家,

今天给大家带来excel的高级玩法。

先给大家看一张动图,点击一个单元格出现了一个范闲!

这是什么鬼?什么鬼?鬼?

2b4d26d99301e21ade82a3fda13853ad.gif

再来看看下面这个,真的让人啼笑皆非啊。

f2c36d904ad4765104b62f39b0d70927.gif

看了上面2张动图,大家发现没有,所有的起因都是从点击一个单元格开始的。那为什么会这样呢?

首先一点大家需要知道excel中有一个叫做VBA的东西,那什么是VBA呢?

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。它也可说是一种应用程式视觉化的 Basic 脚本。

1993年由微软公司开发的应用程序共享一种通用的自动化语言--------即Visual Basic for Application(VBA),实际上VBA是寄生于VB应用程序的版本。1994年发行的Excel 5.0版本中,即具备了VBA的宏功能。

4744b8d7dd52d1fd695a1d078bc5b0aa.png

这个很深奥,其实意思就是在excel中通过自己写一段代码来实现自己想要的功能,当然你远远不知道excel的强大,当然我也算不上精通,在学习excel的道路上还需要更努力呀。

回到我们的问题,为什么会点击一个单元格会弹出范闲?为什么点击单元格弹出对话框?这全是因为一段代码,代码我先贴出来:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$C$2" Then '选择的单元格为$C$2

' 需要添加语句

End If

End Sub

Worksheet_SelectionChange(ByVal Target As Range)这句代码意思就是Worksheet对象的selectionChange事件告诉VBA:当更改工作表汇总选中的单元格区域时自动执行该事件的事件过程。这是标准写法大家可以不用管,记住就行啦。IF是一个判断如果Target.Address等于C2单元格的时候执行then后面的语句就好。

那1图是怎么实现的呢?

这里先给大家引入一个概念“窗体“,也是窗体对象(用户窗体),或者说UserForm。其实范闲那张图其实就是一个窗体,只是我们用picture那进行了背景填充。好了操作步骤:

ALT+F11打开VBA编辑窗口,选择一个sheet,我们以sheet3为例,双击sheet3进入代码编辑页面。

dfdb148b28391e768ccba9e412a6effe.png

这里的UserForm1.show意思就是弹出UserForm1这个窗体。接下来鼠标右键插入一个用户窗体,调整窗体大小,鼠标右键属性找到标签Caption将Caption改为“这是个什么鬼???”,然后找到Picture标签选择后面的3个点号找到你要上传的图片。双击PictureSizeMode选择为1fmPictureSizeModeStretch的标签意思是填充。如图:

bff3f91cf839528e159a5899f5b76be9.gif

然后我们保存,回到excel中点击C2单元格的时候就会弹出范闲了,是不是很简单?

那2图是怎么实现的呢?
2图其实全是用代码就看要搞定了,先贴代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$C$2" Then 'aaaa

Call MYSUB1

End If

End Sub

Sub MYSUB1()

Dim str As Variant '声明str变量

str = InputBox("请告诉我你喜欢我吗?")

Do While str <> "喜欢"

str = InputBox("要说你喜欢我!")

Loop

MsgBox "哈哈哈,真听话"

End Sub

首先这段代码第一个Call MYSUB1这句代码的意思就是执行MYSUB1这个Sub。然后看下面的MYSUB1,dim是声明变量, InputBox是个函数,就是创建一个可输入数据的对话框。然后是Do While循环。判断用户输入的数据是不是等于“喜欢”,如果是就弹出一个对话框“哈哈哈,真听话”,否则就一直循环执行InputBox("要说你喜欢我!")这段代码。是不是也很简单呢?

虽然代码都很简单,但是涉及到的内容还是很多的。大家首先了解了VBA,同时还学到了窗体、IF判断还有do while循环,以及内置函数InputBox和msgbox。感兴趣的朋友们可以自己敲一遍代码自己试试,真的很好玩的呀。

afe7b9dc3d64105d42c0dedd7b5d67ee.png

那这次的分享就到这里啦,看完这篇文章的朋友们,如果文章对您有用的话,请帮忙评论、点赞、收藏、转发,非常感谢!如果有问题可以给我留言评论,看到了就会回答大家的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值