Excel VBA 7.74用VBA实现首列/多列冻结,关键时刻无需百度

用VBA实现首列/多列冻结,关键时刻无需百度


点击上方“Excel和VBA”,选择“置顶公众号”

致力于原创分享Excel的相关知识,源码,源文件打包提供

一起学习,一起进步~~


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

场景说明

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

代码区

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

来看看多列的方法

Sub 多列冻结()Dim rng As Rangeline: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 = TrueEnd IfEnd Sub

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

先来看看效果

代码分析

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

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

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

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

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

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

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

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

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

本节课的案例源码已经上传,需要的小伙伴后台私信“7-74-53”,希望大家多支持~~,多多关注 ~ ~

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


因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。

(0)

相关推荐