前景提要(文末提供源码下载)
当我们的工作表的数据比较大的时候,我们有时候为了观察数据的方便,就会选择首行冻结,将标题行冻结,这样当我们在向下滚动报表的时候,首行是固定的,这样就不会影响我们观看数据了,能够准确的知道每一列数据所代表的的含义和对应的内容。其实要实现首行冻结方法也是非常的简单,这是Excel自身就携带的功能
我们今天来看看用VBA如何实现
代码区
其实应该有很多的小伙伴们会感觉到比较的疑惑,既然Excel自身已经存在了这样的功能,为什么我们还要尝试去通过VBA来实现呢?
其实这两有两个原因,
- 我们学习VBA,一方面为了提升工作效率,另外一方面也要尽可能的多接触一些非常用的功能,这些点点滴滴积累起来也能够给我们的日常操作带来很大的提速
- 有时候我们需要再VBA程序中实现某种功能,这个时候我们不可能让程序暂停,去手工操作Excel的,所以这些功能也是需要用过VBA自身代码来实现的
- 最后一点,是我个人的一个观点,既然要学,就尽量学精,学多,这也是我当初逼自己挤出时间学习的动力和初衷
好了,最近有点多愁善感,进入正题
先来看看首行冻结,这个比较的简单
这是我们第一份工作表,表头只有一行,我们就冻结首行就可以了。
Sub 首行冻结()ActiveSheet.Cells(2, 1).Select '选择单元格A1ActiveWindow.FreezePanes = True '实现冻结窗格的功能End Sub
但是一行的表头还是比较少见的,更多的时候我们的习惯还是喜欢做成多行的表头,那么这样如何来实现了呢?
Sub 多行冻结()Dim rng As Rangeline:Set rng = Application.InputBox("请选择单元格