问:工作表同一行中每三个单元格同时只能有一个单元格显示数据。如下图 1所示,在单元格区域 B6:D6中,如果在单元格 B6中输入了数据,那么单元格 C6和 D6中的内容就会被清除;如果在单元格 C6中输入的数据,那么单元格 B6和 D6中的内容会被清除;如果在单元格 D6中输入的数据,那么单元格 B6和 C6中,内容就会被清除。同样,对于单元格区域 E6:G6也如此, H6:J6也如此 ……,依此类推。并且,下面的第 7行至第 20行也都是如此。该如何实现?
图 1
甲:对照工作表分析一下列号的规律,列乙, Ç , d , ê , ˚F , G ^ , … 对应的列号为 2 , 3 , 4 , 5 , 6 , 7 , …… ,每个数字除以 3 ,依次以每 3 个为一组,它们的余数均为 2 , 0 , 1 ,这就好办了!
如果当前输入的单元格所在列的列号除以 3 ,余数为 2 ,表明当前单元格在该组 3 个单元格的第 1 个单元格,那么其相邻的两个单元格中的内容就要清空。如果当前单元格所在的列的列号除以 3 ,余数为 0 ,表明当前单元格处在 3 个单元格的中间,那么其相邻的垂直和顶部单元格中的内容要清空。如果当前单元格所在列的列号除以 3 ,余数为 1 ,表明当前单元格处在 3 个单元格的最后一个单元格,那么其前面的两个单元格中内容要清空。
按照这个思路,在工作表所在的模块中输入事件过程代码:
专用子Worksheet_SelectionChange(按目标的ByVal目标)
调光范围
设置rng = Range(“ B6:S20”)
有目标
如果不相交(目标,rng)什么都没有
如果(.Column Mod 3)= 2
.Offset(0,1).ClearContents
.Offset(0,2).ClearContents
ElseIf(.ColumnMod 3)= 0然后
.Offset(0,-1).ClearContents
.Offset(0,1).ClearContents
ElseIf(Target.Column Mod 3)= 1然后
.Offset(0,-2).ClearContents
.Offset(0,-1).ClearContents
万一
万一
结束于
excel图表如何获取颜色的十六进制代码
有时候,我们需要某些颜色对应的十六进制代码,可能是需要设计网站,也可能是需要开发Web应用。 在Excel中,我们可以通过“填充颜色——更多颜色”在单元格中插入各种各样的背景色,如下图1所示。 图1 然而,这些自定义的颜色只有GRB值,如果想要其相应的十六进制代码,其实可以使用VBA来获取。如下图2所示,选取带有
结束子
如果工作簿中的所有工作表都要实现上述功能,那么可以将在工作簿模块中编写事件代码:
私有子工作簿_SheetSelectionChange(ByVal Sh作为对象,ByVal目标作为范围)
调光范围
设置rng = Range(“ B6:S20”)
有目标
如果不相交(目标,rng)什么都没有
如果(.Column Mod 3)= 2
.Offset(0,1).ClearContents
.Offset(0,2).ClearContents
ElseIf(.ColumnMod 3)= 0然后
.Offset(0,-1).ClearContents
.Offset(0,1).ClearContents
ElseIf(Target.Column Mod 3)= 1然后
.Offset(0,-2).ClearContents
.Offset(0,-1).ClearContents
万一
万一
结束于
结束子
代码的图片版如下:
excel数据透视表如何创建导航工作表
当工作簿中的工作表不多时,我们只需要单击底部的工作表名到达想要操作的工作表。然而,当有很多工作表时,要找到想要的工作表就需要边单击滚动按钮边查找工作表,这可能要花点时间了。 其实,我们可以创建一个导航工作表,将工作簿中的所有工作表名称都放置到导航工作表中,并设置到工作表的链接,这样,我们只需要单击工作表名称,即可到达