EXCEL在改动某几个单元格时隐藏空列
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAoklEQVQ4T+2T4Q2CMBCFv27CBjgCG+gIjAAbOAIjOIJs4Ai6gRvIBpjXXCOp19T/8pJLoTneXcj3Ah91wAV4bu68xwXoAZ2EzEAmE9AWTB6AelRDyaAx9zgh0wE4ATczcTdIE7wl0oe7wX/8RMHigfQTB3fDdM1IEvYyONdIVEOSqDwCY2Z2NaS/UNbqMSQmvauUPlfbNKpBSdTUVyXSs/XyBlRCNBG20I28AAAAAElFTkSuQmCC)
概述
今天我哥来找我帮他搞下excel表格,本着程序猿对程序无所不能的精神,我爽快的答应了。结果查了半天才搞定。现在记录在此,供自己以后参考,相信对其他人也有用。
PS:这几天正在弄博客,马上就要弄完啦,弄完就把这些手记搬到博客上面啦!
说明
EXCEL的条件格式不能改变单元格的高宽,不能删掉单元格,不能隐藏单元格。
要实现这些功能需要用VBA编写宏,其中用到了EXCEL的Change事件。
EXCEL的Change事件是当改变单元格时自动运行的,不需要绑定按钮。
用法
右键点击工作表的标签,然后点击“查看代码”,然后分别选择“Worksheet”和“Change”,如下图。最后贴入代码即可。
代码
以下代码将更改的单元格的颜色设为蓝色。
Private Sub Worksheet_Change(ByVal Target as Range)
Target.Font.ColorIndex = 5
End Sub
以下代码将在改动EXCEL的C1单元格和G1单元格时,隐藏D4到AH4列之间的空列
Private Sub Worksheet_Change(ByVal Target As Range)
Dim abc As String
Dim rng As Range
abc = Target.Address
If abc = "$C$1" Or abc = "$G$1" Then
For Each rng In [D4:AH4]
If rng.Value = "" Then
rng.EntireColumn.Hidden = True
Else
rng.EntireColumn.Hidden = False
End If
Next
End If
End Sub
注意:Private Sub Worksheet_Change(ByVal Target As Range)
这一行不能改动;其中Target 就表示你改动的单元格。
作者:馒头加梨子
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· Tinyfox 简易教程-1:Hello World!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!