- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码如下 :
private sub worksheet_selectionchange(byval target as range)
thisworkbook.names.add xm, target
end sub
这几行代码的作用是, 当选择新的单元格时, 将这个单元格 (或者区域 )定义为名称 “xm ”,
在条件格式设置中可以引用这个名称。
如下面的附件,将代码粘贴完成后,返回工作表中,选择 a4:i15 ,点击菜单“格式—条
件格式”,设置:
公式 1:=(a4lt;gt;)*(a4=xm)
(如果 a4 不为空,并且 a4 等于 xm)
公式 2:=row()=row(xm)
(如果当前的行号等于 xm 的行号 )
用代码定义名称,我们需要它的即时更新,鼠标点到什么,这个名称“ xm ”就更新什
么。
例如,当鼠标点击 f7 单元格, xm 便等于 f7 , row(xm)=7 ,设置条件格式的区域中,凡
是 row() 等于 7(说白了就是第 7 行 )的单元格便显示背景色。
用手工定义也可得到相同的效果,可以试试。然后比较一下,用代码的好处是什么。
当选中 b6 单元格时有不一样的情况出现,是因为区域中设置了两个条件格式,它符合
第一个条件便显示第一种格式,符合第二个条件便显示第二个格式。
点击菜单“格式—条件格式”可看清楚。
初学有一个问题?能否把 高亮显示单元格 做成 自动起动的宏,让用户的鼠标单击工
作表的某一个单元格后,相应的行和列都显示一种 或者 两种背景色!
直接用 vba 设置背景色,做法如下:
鼠标右键点击工作表标签,选择“查看代码” ,将下面代码粘贴到光标处:
代码如下 :
private sub worksheet_selectionchange(byval target as range)
dim rng as range
set rng = target.range(a1)
cells.interior.colorindex = 0 清除所有背景色
rng.entirecolumn.interior.colorindex = 40 设置当前列颜色
rng.entirerow.interior.colorindex = 36 设置当前行颜色
end sub
其中 40、36 为颜色索引号,不同的数值代表不同的颜色,对应索引如下:
如果工作簿中的每张工作表都有相同效果,应该怎么做?
按 alt+f11 打开 vbe 编辑器,在工程管理器中双击模块“ thisworkbook ”,将下面的代码
粘贴到光标处:
代码如下 :
private sub workbook_sheetselectionchange(byval sh as object, byval target as range)
dim rng as range
set rng = target.range(a1)
cells.interior.colorindex = 0 清除所有背景色
rng.entirecolumn.interior.colorindex = 40 设置当前列颜色
rng.entirerow.interior.colorindex = 36 设置当前行颜色
end sub
使用了这个代码后,表中的“复制”和“拷贝”功能就被禁止了,不知有无办法可以解
决?
可在代码第二行 (清除颜色之前就行 )插入一行代码:
if application.cutcopymode then exit sub 如果处于选取状态则退出程序
代码如下 :
private sub workbook_sheetselectionchange(byval
文档评论(0)