VBA在Excel中的应用(一):改变符合条件单元格的背景颜色

  在使用excel处理数据的时候,为了能更清晰的标示出满足特定条件的单元格,对单元格添加背景色是不错的选择。手工处理的方式简单快捷,但是当遇到大批量数据,就会特别的费时费力,而且不讨好(容易出错)。通过代码来处理是个不错的选择,excel可以通过VBA编程来处理内部数据,在打开excel页面后,可以通过“alt + F11”组合键来启动VBA编程界面,跟VB的编程界面和语法一样,需要注意的是如何调用excel的内容。VBA通过sheet, range和cells三个层次来调用excel中的制定区域,sheet指定要处理的表格页,ranges制定要处理的范围,可以是一个单元格,也可以是多个单元格,cells(i,j)通过制定行下标i和列下表j来定位制定的单元格,通过这三个层次就基本能定位excel中的任意制定位置。

关于vba和excel编程,请详见:http://msdn.microsoft.com/zh-cn/library/ee814737.aspx

http://www.cnblogs.com/jaxu/archive/2009/04/04/1407004.html

实例:在做验证性因子分析(Confirmed Factoe Analysis,CFA)的时候,我们通常因子载荷(factor loading)来判断构念(construct)之间的区别效度(discriminant validity),即同一构念下的item之间correlation尽可能高,而不同构念的item之间的相关性尽可能低。所以将correlation matrix中大于没特定阈值单元格用特定背景颜色加以区分,就可以清晰的看出item之间的相关关系。

  假设我们有一个64*64的correlation matrix,那么在excel中是用vba对不同范围的correlation值的单元格添加背景颜色的代码如下:

 1 Sub changeBgColor()
 2   Dim i As Integer
 3   Dim j As Integer
 4   Dim r As Integer
 5   Dim c As Integer
 6
 7
 8   r = 67 ‘最后一行是第67行
 9   c = 66 ‘最后一列是第66列
10
11   For i = 3 To r ‘迭代,从第3行开始,一直到最后一行
12     For j = 2 To c  ‘迭代,从第2列开始,一直到最后一列
13
14         If Cells(i, j) > 0.5 And Cells(i, j) < 0.6 Then  ‘如果单元格Cells(i,j)的值大于0.5下于0.6,那么背景颜色代码为42
15             Cells(i, j).Interior.ColorIndex = 42
16         End If
17
18         If Cells(i, j) > 0.6 And Cells(i, j) < 0.7 Then
19             Cells(i, j).Interior.ColorIndex = 43
20         End If
21
22         If Cells(i, j) > 0.7 And Cells(i, j) < 0.8 Then
23             Cells(i, j).Interior.ColorIndex = 6
24         End If
25
26         If Cells(i, j) > 0.8 And Cells(i, j) < 1 Then
27             Cells(i, j).Interior.ColorIndex = 3
28         End If
29     Next
30   Next
31
32 End Sub

  结果如下所示:

附1:excel中的颜色代码(colorIndex)

VBA在Excel中的应用(一):改变符合条件单元格的背景颜色,布布扣,bubuko.com

时间: 2024-10-11 13:27:32

VBA在Excel中的应用(一):改变符合条件单元格的背景颜色的相关文章

vba打开excel文件遍历sheet的名字和指定单元格的值

今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样,所以打算写个程序来帮我们实现任务,代码很简单,也写的比较死板.欢迎大家给出意见及你的代码: Sub aaaa() Dim sh1, sh2 As Worksheet Dim shName, cellValue As String 'On Error Resume Next Set sh1 = Wo

EXCEL中提取某行最后一个有效单元格数据

用户的需求总是多种多样的,有的如同下图:大家可以看下图,只是举例,不一定合理.每个人所属的部门的级别不同,有的人属于公司之下,有的属于team之下,而大家可以看到这个表里面有很多空白单元格,看上去不是很一目了然,现在用公式直接把所属级别直接显示在姓名后面. . 其实上面的这么多废话的中心思想就是:显示某一行最后一个有效单元格的内容 下图是适用于 文本格式的数据 下图是适用于数字格式的内容

ExtJS4.2 Grid知识点三:改变表格Grid单元格背景颜色

在ExtJS4.2 Grid知识点一:改变表格Grid单元格文字颜色一文中讲解了如何改变单元格中文字颜色,接下来在本章学习如何改变Grid中单元格的背景颜色,显示结果如图片: 在线演示  /  示例代码 实现方式同样是为Grid中该列自定义renderer函数,查询ExtJS 4.2 API得知,Ext.grid.column.Column的renderer属性可以是一个函数也可以是字符串,这个知识点是通过函数来实现的.函数参数列表如下: value : 当前待渲染的单元格值,即表格中某行某列的

利用VBA查找excel中一行某列第一次不为空与最后一列不为空的列数

昨日同事有需求,想知道每个商品第一次销售的月份,以及最后一次销售的月份. 本想通过什么excel函数来解决,但是找了半天也没找到合适的,最后还是通过VBA来解决吧. 使用方法: Excel工具-宏-Visual Basic编辑器 在左侧栏中点右键, 插入-模块 然后输入: 1 Function Last0(ByVal Int_Row As Integer) As Integer 2 Last0 = 14 3 Do While Cells(Int_Row, Last0) = "" And

excel中vba将excel中数字和图表输出到word中

参考:https://wenku.baidu.com/view/6c60420ecc175527072208af.html 比如将选区变为图片保存到桌面: 1 Sub 将选区转为图片存到桌面() 2 Dim ans As Byte, Pic As String, Paths As String 3 On Error Resume Next 4 Paths = CreateObject("WScript.Shell").SpecialFolders("Desktop"

VBA在Excel中的应用(三)

目录  Chart Export Chart Format Chart Lengend  Chart Protect  Chart Title  Chart Chart Export 1. 将Excel中的图表导出成gif格式的图片保存到硬盘上 Sub ExportChart()     Dim myChart As Chart     Set myChart = ActiveChart     myChart.Export Filename:="C:\Chart.gif", Filt

Excel自文本导入内容时如何做到单元格内换行

前言:今天在处理数据的时候,在数据库中用到了\n换行符号,目的是在同表格内做到数据多行显示,比如  字段名1  字段名2  字段名3  1 数据一行 数据二行 数据三行 例子是在sql查询后的结果   2 例子如上  数据未导出  本来在sql查询后是如此显示的,但是后来导出文本格式,Excel自文本导入内容时就会报错,那么问题来了, 如何做到Excel自文本导入内容时如何做到单元格内换行? 正文:在网上找了很多例子,其中有位前辈讲的很有道理,原话如下: excel实现自动换行的两个必要条件1.

c#winform中如何修改ListView控件每个单元格的颜色

ListView在View属性为Details的时候它呈现的方式和DataGirdView差不多,它的每一行都是一个ListViewItem,然而每个ListViewItem都有一个BackColor的属性,但是设置了这个属性却没有任何作用.因为是ListView的每一行的样式都继承的父控件的样式所以无法改变. 解决方案: ListViewItem item; item = new ListViewItem(new string[] { "NAME","" });

EXCEL小技巧:如何统计非空单元格

http://club.excelhome.net/thread-1187271-1-1.html 下面教大家如果用函数统计非空单元格的数量 首先我们来介绍几个统计函数: 1.COUNT(value1,value2,...)    统计包含数字的单元格个数 2.COUNTA(value1,value2,...)    统计非空单元格的个数 3.COUNTBLANK(range)   统计空单元格的数量 4.COUNTIF(range,criteria)    统计range区域中满足条件crit