Excel VBA 每日一场景 点击单元格即可打开单元格内容对应的工作表
单元格的超链接,在我们平时的工作中使用并不算是很广泛,但是有时候我们也是需要使用到这个超链接的
比方说在今天的场景中,但我们需要通过单元格,来打开某个指定的工作薄的时候,就可以用到这个超链接的方法
但是我们既然学习了VBA,相信很多的小伙伴就不再会去尝试手工给单元格添加超链接了
毕竟手工添加超链接的步骤是非常的繁琐的
而且添加了超链接之后,这个单元格就会有超链接的样式,这样看起来非常的不整齐
并且不利于文本的编辑,因为随便点一下就是变成了超链接
那么我们有没有一个更好的方法来实现这个超链接呢?
之前有一个小伙伴就给我提供了这样一个场景,希望通过单击单元格的方式,来打开某个工作薄
我忽然觉得这某种程度上,就是超链接的另外一种展示方式,来看看场景
这里是我们要打开的几个工作表的名称,我们现在希望实现的效果是,当我们单击这个单元格的时候
VBA程序就能够自动去打开指定位置的工作薄文件,这样我们就不用再去做超链接,也不用再去找对应的工作薄了
操作非常的方便,而且也不会导致文本看起来有那么多的样式
单元格点击就去执行某个操作,着很明显就是单元格的事件功能了。
看代码
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '选择单元执行代码
Path = ThisWorkbook.Path
On Error Resume Next
If Not Application.Intersect(Target, [A1:A10]) Is Nothing Then
s = ActiveCell
Workbooks.Open Path & "\" & s & ".xlsx"
End If
End Sub
非常简短的代码
来看看效果如何
最开始的时候,当我们点击其他位置的单元格的时候,并没有触发任何的事件功能
但是当我们点击这个A1单元格的时候,就会发现程序去执行了打开 操作,将一个名为A1的工作簿成功的打开了。
这就是一个简单的单元格点击的功能
这个场景是小伙伴在之前的章节中启迪出来的 新场景,因为他正在制作一个类似表格汇总的窗体
希望通过名字来打开每个人的工作表,这样就不用每次都去自己去手工打开了,非常的节省时间
所以今天也是借花献佛,拿出来分享给大家
这也是替代超链接的一个不错的方法
代码解析
代码的话,今天的就很简单,主要是写在单元格的事件模块中
首先,我们要限定一个点击的区域
因为我们都知道,单元格的点击事件,是适用于整个Excel工作表的,如果你不限制区域的话,你每点击单元格,那么程序都会执行一个打开的操作
这样会导致系统卡死,严重的情况下还会死机,因为你开的东西实在事太多了。
所以这一点大家在使用的时候一定要注意,一定要限制点击事件的范围,可以是一整列,一整行都可以
而打开工作表的操作,则就非常的简单了。
Workbooks.Open+路径,对于现在的小伙伴们来说,这些肯定都没有难度了。
好了, 今天的场景比较的简单,就和大家先分享到这里了。