excelvba高亮显示当前行代码

   2015-06-26 0
核心提示:用条件格式设置高亮显示当前行,难的是如何确定当前行。用VBA就很简单,鼠标右击工作表标签,选择“查看代码”,将下面的代码粘贴到VBE窗口中
代码:
复制代码 代码如下:

Private Sub Worksheet_Selection Change(ByVal Target As Range)
ThisWorkbook.Names.Add "XM", Target
End Sub

这几行代码的作用是,当选择新的单元格时,将这个单元格(或者区域)定义为名称“XM”,在条件格式设置中可以引用这个名称。
如下面的附件,将代码粘贴完成后,返回工作表中,选择A4:I15,点击菜单“格式—条件格式”,设置:
公式1:=(A4<>"")*(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_Selection Change(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_SheetSelection Change(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_SheetSelection Change(ByVal Sh As Object, ByVal Target As Range)
If Application.CutCopyMode Then Exit Sub '如果处于选取状态则退出程序
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
 
标签: excel vba 高亮显示
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Perl操作Mysql数据库 perl操作excel
    一. 安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令:ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二. 安装DBD
    02-09
  • C#/VB.NET 获取Excel中图片所在的行、列坐标位置
    C#/VB.NET 获取Excel中图片所在的行、列坐标位
    本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐标即顶点所在的第几列、纵坐标即顶点所在的第几行。下面是获取图片位置的详细方法及步骤。【程序环境】按照如下方法来引
    02-09
  • python 使用pandas,完成对excel的操作: 遍历
    excel有针对偏度的计算函数 skew(), 但是不清楚怎么使用excel进行遍历, 数据量很大。尝试使用python进行解决。第一次学习python,没想到了在克服安装各种包的难过之后,居然成功实现了。python3.3:#this is a test case# -*- coding: gbk -*-print("hello py
    02-09
  • Delphi操作Excel(2) ---Stringgrid导出到Excel
    最近编了一个小软件,需要将Stringgrid中的内容导出到Excel中。由于使用的是Delphi2010 + Office2010,中间有点小曲折,现把代码贴出来,供参考。代码procedure TFormMain.btn3Click(Sender: TObject);varExcelApp,workbook,sheet:Variant;begindlgSavedlg1.F
    02-09
  • csv,txt,excel文件之间的转换,perl脚本
    最近接触一些需要csv,txt,excel文件之间的转换,根据一些网上搜索加上自己的改动,实现自己想要的结果为主要目的,代码的出处已经找不到了,还请见谅,以下主要是针对csvexcel 和txtexcel写的perl脚本。主要用到的模块是: Text::CSVSpreadsheet::WriteExcel
    02-09
  • 使用Perl提取Excel中的IO_MUX perl处理excel内容
    使用Perl提取Excel中的IO_MUX perl处理excel内
    关键问题提取数据格式化输出循环嵌套数据结构构建坐标映射,逆向提取关键字描述在IC集成中,我们使用Excel表格规划设计的IC引脚功能映射需要转化到Verilog层次,这个过程耗时耗力,但其中有一些规律,可以通过Perl将其格式化提取出部分可用的信息,应用得当可
    02-09
  • MATLAB读写Excel文件中的数据
    读取:%读取filename文件中指定表的数据,存入dataRead矩阵中dataRead=xlsread('filename.xls',sheet); 写入:%将矩阵dataWrite中的数据写入filename表中,从C1单元格开始xlswrite('filename.xls',dataWrite','C1'); 作者:耑新新,发布于  博客园转载请
    02-09
  • R语言学习笔记之: 论如何正确把EXCEL文件喂给R
     博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html  ----前言: 应用背景兼吐槽继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯。这次的主题是论R与excel的结合,又称 论如何正确把EXCEL文件喂给R处理 分为: 1、 xlsx包安装及注
    02-09
  • R语言使用过程中出现的问题--读取EXCEL文件
    方法一:按照R导论中的方法,使用RODBC包,library(RODBC)channel-odbcConnectExcel("file.xlsx")da2-sqlFetch(channel,"Sheet1")odbcClose(channel)结果:未能成功,原因是odbcConnectExcel is only usable with 32-bit Windows 即只能在32位的电脑中使用,6
    02-09
  • [译] Ruby如何访问Excel文件
    [译] Ruby如何访问Excel文件
     BY: MATT NEDRICH   翻译:佣工7001     本文中,我将会评判几种Ruby语言访问Excel文件的库。我将要讨论针对不同格式的Excel文件访问的现有的几个Ruby库。本文中更多地聚焦于读取Excel文件,但是也对与更改/写入Excel文件稍作了些讨论。如果你迫不及
    02-09
点击排行