EXCEL在改动某几个单元格时隐藏空列

概述

今天我哥来找我帮他搞下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 就表示你改动的单元格。

原文地址:https://www.cnblogs.com/yangzhou33/p/8407429.html

时间: 2024-10-07 01:47:49

EXCEL在改动某几个单元格时隐藏空列的相关文章

excel 无效引用 所引用的单元格不能位于256列

无效引用 该文件版本所包含的公式中,所引用的单元格不能位于256列(列IW 或更远)或 65536 行以外的区域. 原因及解决方法: 1.版本问题,把两文件都另存为一致的版本,改为后缀为xlsx. 2.有空字符串,清空字符串,转换为数字就行了. 原文地址:https://www.cnblogs.com/sineik/p/11050390.html

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

Asp.net导出Excel续章(自定义合并单元格,非Office组件)

结合上次写的导出Excel方法,这次上头要求我将列头进行一下合并 以前的效果: 改进后的效果: 在上篇文章中写到了Excel的导出方法,这次为了避免在生产环境中使用Office组件,服务器各种权限配置的麻烦,这次就不使用Office组件来生成Excel了. 上篇文章:Asp.net导出Excel(HTML输出) 关键代码如下图: 说道这里,其实主要思路已经很明显了. 在数据绑定结束后,重新绘制表头替换掉原来的表头就行了. TableCell自定义表头的时候是table标签的,很方便. 另外发现了

JavaScript提高:004:JS获取Gridview单元格时层级问题

使用javascript获取页面中元素的属性,或者对元素进行操作.这种使用是非常多的.不过对于获取那些在页面中单一的元素,诸如,页面上的某个文本框,下拉列表,按钮等可以直接用ID获取到的这种元素,用法自然简单.这里就不多说了,太简单了.一般比较复杂的是,获取元素中的元素,比如动态生成的那些元素.这里就拿表格中的元素为例吧.知道如何获取表格中的单元格内的元素了,其他的复杂元素也就不在话下了.下面举个简单的例子,获取GridView的单元格元素.平常使用比较多的也就是这种的.行中有个操作按钮,然后对

LVC函数重要参数 EDT_CLL_CB:退出可编辑单元格时回调

6. I_GRID_SETTINGS 参数属性该参数用于设置Grid相关参数(打印.单元格回调):类型为:LVC_S_GLAY,该结构包括:01) COLL_TOP_P:最小化 TOP_OF_PAGE02) COLL_END_L:最小化 END_OF_LIST03) TOP_P_ONLY:仅打印TOP_OF_PAGE04) EOL_P_ONLY:仅打印END_OF_LIST05) NO_COLWOPT:不优化打印的列宽***************************************

JQGrid单元格合并及表头列合并

合并单元格代码示例 表头列合并代码示例 效果图

C# winform datagridview 内嵌控件值改变后立即触发事件,而不需要离开该单元格时才触发,此时需要用到dgv_CurrentCellDirtyStateChanged事件

以下是参考代码 //datagridview内嵌控件值修改事件 private void dgv_CurrentCellDirtyStateChanged(object sender, EventArgs e) { if (dgv.IsCurrentCellDirty) { dgv.CurrentCellDirtyStateChanged -= dgv_CurrentCellDirtyStateChanged; dgv.CommitEdit(DataGridViewDataErrorContex

点击表格的单元格时实现变颜色

<title>无标题文档</title> <script type="text/javascript" language="javascript"> //清空 function backs(){ var td= document.getElementsByTagName("td"); for(var i=0;i<td.length;i++){ td[i].style.backgroundColor=&qu

table合并单元格 colspan(跨列)和rowspan(跨行)

colspan和rowspan这两个属性用于创建特殊的表格. colspan是“column span(跨列)”的缩写.colspan属性用在td标签中,用来指定单元格横向跨越的列数: 在浏览器中将显示如下: 单元格1 单元格2 单元格3 单元格4 该例通过把colspan设为“3”, 令所在单元格横跨了三列.如果我们将colspan设为“2”,则该单元格将只跨越两列,于是有必要在第一行插入另外一个单元格,以确保两行占据相同的列数. 该例在浏览器中将显示如下: 单元格1 单元格2 单元格3 单元