VBA实现文本对比着色

简介: VBA实现文本对比着色

我们在使用Excel处理数据的时候,经常需要对比两行或者两列数据之间的异同。虽然有EXACT之类的函数非常方便的提供了对比功能,但难免还是不够用,特别是需要实现一些个性化的比对的时候。

这时VBA就派上了用场,使用VBA代码也能很方便的实现单元格的文本比对着色。只需要在vba代码编辑器里添加如下一段代码即可:

Sub diff()
    Dim wbook As Workbook
    ChDir "D:\"
    Set wbook = Workbooks.Open(Filename:="D:\1.xlsx")   '要比对的Excel文本
    wbook.Activate
    Dim col, row As Integer
    For row = 1 To ActiveSheet.UsedRange.Rows.Count Step 1      '所有有效的行
        For col = 1 To ActiveSheet.UsedRange.Columns.Count Step 2   '所有有效的列,step 2 表示每隔一行都执行一次比对,这样可以实现多组比对
            If Cells(row, col) <> Cells(row, col + 1) Then
                Cells(row, col).Interior.Color = 5296274      '着绿色
                Cells(row, col + 1).Interior.Color = 5296274
            End If
        Next
    Next
    wbook.Save
End Sub

为了验证上述代码有效,我们在D盘根目录下建立一个1.xslx文件,在里面准备以下内容:

执行上述代码,效果如图所示:

目录
相关文章
|
7月前
|
C语言
c语言编程练习题:7-3 输出带框文字
本题要求编写程序,输出指定的带框文字。
142 0
|
4月前
|
机器学习/深度学习 前端开发 JavaScript
使用JavaScript精确裁剪图像的空白部分
【8月更文挑战第20天】
201 5
|
3月前
文本外观属性
文本外观属性。
19 0
|
4月前
|
C++
MFC基本控件-静态文本的使用
MFC基本控件-静态文本的使用
|
6月前
LaTeX排版心形段落
LaTeX排版心形段落
OFFICE技术讲座:段落的行是如何布局不同对齐方式的
OFFICE技术讲座:段落的行是如何布局不同对齐方式的
91 0
OFFICE技术讲座:段落的行是如何布局不同对齐方式的
|
C#
WPF图形/文字特别效果之一:交叉效果探讨(续)
原文:WPF图形/文字特别效果之一:交叉效果探讨(续) 在“WPF图形/文字特别效果之一:交叉效果探讨”(http://blog.csdn.net/johnsuna/archive/2008/05/08/2419404.aspx)一文中,我使用了根据笔画顺序书写及顺时针/逆时针的方式来对交叉块进行分类描述,籍以探讨如何给各交叉色块填充颜色。
978 0
|
C#
WPF图形/文字特别效果之一:交叉效果探讨
原文:WPF图形/文字特别效果之一:交叉效果探讨 为了说明问题,先看下图:图1  完全重叠的单一颜色文字它是2008几个字的叠加,并且颜色为单一的红色。
807 0
|
C# 容器 异构计算
去除WPF中3D图形的锯齿
原文:去除WPF中3D图形的锯齿       理论上讲PC在计算3D图形的时候是无法避免不出现锯齿的,因为3D图形都是又若干个三角形组成,如果3D图形想平滑就必须建立多个三角形,你可以想象一下正5边形和正100边形哪个更接近圆形的道理一样,这样会大量消耗显卡的存储空间或是从内存共享的存储空间,导致程序的整体性能降低,但如果三角形很少,显卡的解析度毕竟有限,就会出现锯齿。
1427 0
|
C# 移动开发
写一个去除AI2XAML注释及多余数字位数的WPF窗体程序
原文:写一个去除AI2XAML注释及多余数字位数的WPF窗体程序 使用正则表达式去除多余注释及冗余数字位,关键代码:            string pattern = @"/b(/d+)/.
1068 0