ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 31357|回复: 11

[求助] Execl高亮显示活动单元格的行和列

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-5-12 23:34 | 显示全部楼层 |阅读模式
本帖最后由 txdzf 于 2014-5-13 00:16 编辑

想要达到的目的:

Execl高亮显示活动单元格的行和列

Execl高亮显示活动单元格的行和列

即:
  ①、不改变原表格内任何背景颜色;
  ②、活动单元格所在行和列高亮显示(当变为非活动单元格时,恢复原来颜色);
  ③、活动单元格本身保持原颜色且粗边框显示。

  在工作中,我们有的EXCEL表格数据列特别多,行也很多,非常不方便左右或是上下查看比对数据,见别人发的表格中,可以选中一个单元格,其所在的行或是列自动用醒目的颜色高亮标示出来,这样,可以极大的减轻我们的眼疲劳,提高核对或是录入数据的准确性。但是不知道怎么做出来的,也不知道最初是谁设置的,后来上网上收集了些VBA代码,但每次开启时都询问“是否启动宏”,大家也知道的 ,不启动肯定达不到目的,自动启动吧,有怕中毒,关键是传给同事或换台电脑他也不自动启动该宏哦。
  能不能有一种办法,不装软件,不用宏代码,或者该宏代码在任意一台机子上都不询问直接启动呢?
  最好能有详细备注哦。
  感谢各位能给予赐教!




TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-12 23:39 | 显示全部楼层
本帖最后由 txdzf 于 2014-5-13 00:04 编辑

收集到的代码,其中一个为:
1、打开宏,在ThisWorkbook里输入;
2、输入:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    With Target
        '清除工作表单元格的背景色
         .Parent.Cells.Interior.ColorIndex = xlNone
         '设置选中区域所在行的背景色
        .EntireRow.Interior.Color = vbCyan
        '设置选中区域所在列的背景色
        .EntireColumn.Interior.Color = vbCyan
    End With
End Sub
3、问题:①活动单位格未加边框且颜色与行和列一样;②需启动宏;③清除了原单元格的背景色,若不清除的话刚点多的活动单元格中显示的高亮色也还存在。

TA的精华主题

TA的得分主题

发表于 2014-5-13 21:20 | 显示全部楼层
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim colstr As String
    With Target
        colstr = Mid(.Address, 2, InStr(2, .Address, "$") - 2)
        Range(ActiveCell.Address & "," & colstr & ":" & colstr & "," & .Row & ":" & .Row).Select
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2015-12-16 15:21 | 显示全部楼层
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Sh.Cells.Interior.ColorIndex = xlNone
    Target.EntireColumn.Interior.ColorIndex = 4
    Target.EntireRow.Interior.ColorIndex = 8
End Sub
这个是工作薄中单元格改变事件


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Interior.ColorIndex = xlNone
    Target.EntireColumn.Interior.ColorIndex = 4
    Target.EntireRow.Interior.ColorIndex = 4
End Sub
这个是工作表中单元格改变事件

TA的精华主题

TA的得分主题

发表于 2016-5-21 22:36 | 显示全部楼层
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.FormatConditions.Delete
    With Target.EntireColumn
        .FormatConditions.Add xlExpression, , "=true"
        .FormatConditions(1).Interior.ColorIndex = 4
    End With
    With Target.EntireRow
        .FormatConditions.Add xlExpression, , "=true"
        .FormatConditions(2).Interior.ColorIndex = 4
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2017-4-1 09:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
路过留痕,以备查阅!

TA的精华主题

TA的得分主题

发表于 2017-9-6 10:20 | 显示全部楼层
这样不好,以前用过复制时会把颜色标记复制过去,而WPS是可以不用代码的

TA的精华主题

TA的得分主题

发表于 2017-9-7 18:48 | 显示全部楼层
xmh237 发表于 2014-5-13 21:20
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim colstr As String
    With Tar ...

好用,谢谢,但看不懂代码,哈哈

TA的精华主题

TA的得分主题

发表于 2017-9-8 08:59 | 显示全部楼层
xmh237 发表于 2014-5-13 21:20
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim colstr As String
    With Tar ...

今天使用中发现一个问题,您分享的这个公式,影响单元格的格式设置,比如设置当前单元格背景色,会让当前单元格的所在的整行,整列都被设置上。

TA的精华主题

TA的得分主题

发表于 2018-7-6 15:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 02:40 , Processed in 0.028657 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表