Excel VBA 7.74用VBA实现首列/多列冻结,关键时刻无需百度
用VBA实现首列/多列冻结,关键时刻无需百度
点击上方“Excel和VBA”,选择“置顶公众号”
致力于原创分享Excel的相关知识,源码,源文件打包提供
一起学习,一起进步~~
昨天我们分享了如何通过VBA来实现首行以及多行冻结的方式,让Excel自带的功能,通过VBA代码的方式实现了,在程序运行的过程中,就可以轻松的借助已经存在的轮子来操作了,而不用自己额外再去造轮子了。既然已经分享了首行/多行的冻结,那么顺带也来分享下首列/多列的冻结吧
场景说明
excel自带的功能里面,冻结首列是单独存在的,但是在冻结多列的时候,虽然步骤并不是很多,但是因为没有步骤提示和说明,所以很多的小伙伴们在使用的时候,就会忘记具体的操作步骤,百度看了一下,虽然教程很多,但是步骤还是不少。与其每次花费时间去百度,还不如按照自己的理解做一个有提示的冻结功能,这样既方便自己也节省了时间
代码区
Sub 首列冻结()
With ActiveWindow
.SplitColumn = 1
.SplitRow = 0
End With
ActiveWindow.FreezePanes = True
End Sub
来看看多列的方法
Sub 多列冻结()
Dim rng As Range
line:
Set rng = Application.InputBox("请选择单元格", "确定要冻结行的下一行的单元格位置", , , , , , 8)
If rng.Columns.Count > 1 Then
MsgBox "请随机选择下一行的一个单元格即可,请重新选择!"
GoTo line
Else
With ActiveWindow
.SplitColumn = rng.Column
.SplitRow = 0
End With
ActiveWindow.FreezePanes = True
End If
End Sub
看起来和昨天处理多行的方法有一些不同,其实昨天的方法功能还多一些。今天的这个方法是专门针对列进行操作的,昨天的方法还涉及了行,后面会说到。
先来看看效果
代码分析
今天的代码和昨天的行的冻结稍微有一些不同
因为在更换了场景之后,我发现昨天的代码并不是完全针对行的,他更适用于行列同时操作的时候使用,单独针对于行的操作,可能并不完美会有一些瑕疵。
所以大家也一起更新下昨天的知识点
With ActiveWindow
.SplitColumn = 0'几列
.SplitRow = 1'几行
End With
不管是单独操作行的冻结,还是单独操作列的冻结,这几句话都是必须的,
代码中已经做了备注,你需要操作几行就是将行数后面更换成为对应的数值,你要操作激烈,就将几列换成对应的数值就可以了。
大家一起更新下方法,昨天的代码在单独处理行的时候,会有一些瑕疵,已经下面源文件的小伙伴我会单独私信最新的源文件给你,记得按照最新的来学习哦,
至于原来的方法有什么瑕疵,我们下一节一起讲解
==========================
本节课的案例源码已经上传,需要的小伙伴后台私信“7-74-53”,希望大家多支持~~,多多关注 ~ ~
好了,明晚21:00,准时再见!
因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。