前景提要(文末提供源码下载)

昨天我们分享了如何通过VBA来实现首行以及多行冻结的方式,让Excel自带的功能,通过VBA代码的方式实现了,在程序运行的过程中,就可以轻松的借助已经存在的轮子来操作了,而不用自己额外再去造轮子了。既然已经分享了首行/多行的冻结,那么顺带也来分享下首列/多列的冻结吧

vba多条件筛选技巧(行列冻结步骤太多)(1)

场景说明

excel自带的功能里面,冻结首列是单独存在的,但是在冻结多列的时候,虽然步骤并不是很多,但是因为没有步骤提示和说明,所以很多的小伙伴们在使用的时候,就会忘记具体的操作步骤,百度看了一下,虽然教程很多,但是步骤还是不少。与其每次花费时间去百度,还不如按照自己的理解做一个有提示的冻结功能,这样既方便自己也节省了时间

代码区

依然先来看看首列冻结

Sub 首列冻结() With ActiveWindow .SplitColumn = 1 .SplitRow = 0 End With ActiveWindow.FreezePanes = True End Sub

vba多条件筛选技巧(行列冻结步骤太多)(2)

来看看多列的方法

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

看起来和昨天处理多行的方法有一些不同,其实昨天的方法功能还多一些。今天的这个方法是专门针对列进行操作的,昨天的方法还涉及了列,后面会说到。

先来看看效果

vba多条件筛选技巧(行列冻结步骤太多)(3)

代码解析

今天的代码和昨天的行的冻结稍微有一些不同

因为在更换了场景之后,我发现昨天的代码并不是完全针对行的,他更适用于行列同时操作的时候使用,单独针对于行的操作,可能并不完美会有一些瑕疵。

所以大家也一起更新下昨天的知识点,

With ActiveWindow .SplitColumn = 0'几列 .SplitRow = 1'几行 End With

不管是单独操作行的冻结,还是单独操作列的冻结,这几句话都是必须的,

代码中已经做了备注,你需要操作几行就是将行数后面更换成为对应的数值,你要操作激烈,就将几列换成对应的数值就可以了。

大家一起更新下方法,昨天的代码在单独处理行的时候,会有一些瑕疵,已经下载了昨天源文件的小伙伴我会单独私信最新的源文件给你,记得按照最新的来学习哦,

至于原来的方法有什么瑕疵,我们下一节一起讲解

================================

本节课的案例源码已经上传,需要的小伙伴后台私信“7-74..new”,本节案例涵盖了单独针对行、列的操作,如果我出现了遗漏,没有收到最新文件的小伙伴可以选择直接私信获得今天的最新版

vba多条件筛选技巧(行列冻结步骤太多)(4)

好了,明晚19:00,准时再见!

,