VBA 行内容相同时字体变灰

1. 效果

2. 实现代码

vbscript 复制代码
Option Explicit

Sub sbSameFontGrey()
    Dim i, j As Long
    Dim rng As Range
    Dim maxUsedRow, maxUsedCol As Long
    Dim ws As Worksheet: Set ws = ActiveSheet

On Error GoTo ErrProcess

    If TypeName(Selection) <> "Range" Then
        MsgBox "Please select a cell range first!", vbExclamation
        Exit Sub
    End If
    
    Application.ScreenUpdating = False
    
    maxUsedRow = ws.UsedRange.Row + ws.UsedRange.Rows.Count - 1
    maxUsedCol = ws.UsedRange.Column + ws.UsedRange.Columns.Count - 1
    
    For j = Selection.Column To Selection.Column + Selection.Columns.Count - 1
        For i = Selection.Row + 1 To Selection.Row + Selection.Rows.Count - 1
            Set rng = Cells(i, j)
            rng.Font.Color = RGB(0, 0, 0) 'Color:Black
            If rng.Value = rng.Offset(-1).Value Then rng.Font.Color = RGB(217, 217, 217) 'Color:Grey
            If i > maxUsedRow Then Exit For
        Next
        If j > maxUsedCol Then Exit For
    Next
    
    Application.ScreenUpdating = True
    Exit Sub
ErrProcess:
    Application.ScreenUpdating = True
    MsgBox Err.Description
End Sub
相关推荐
VBA63374 天前
VBA 64位API声明语句第025讲
vba
Access开发易登软件7 天前
Access 导入 Markdown 表格:把文档里的数据写进表
前端·html·vba·markdown·access开发
zhongwei22813 天前
vba将一个文件夹的内容复制到另外一个文件夹的函数,若存在则是否覆盖的参数。复制前检查源文件夹是否存在。若目标文件夹不存在,则新建
前端·vba
Access开发易登软件22 天前
Access 复杂业务计算,SQL 写在 VBA 还是存储过程?
microsoft·vba·access·access开发
SunnyDays10111 个月前
如何使用 Python 添加和编辑 Excel VBA 宏(无需安装 Excel)
开发语言·python·excel·vba
taller_20001 个月前
【005】PiE 与传统 VBA 的核心区别
python·vba·pie·py
VBA63372 个月前
VBA密匙暗码加密技术
vba
VBA63372 个月前
VBA代码加密解决方案目录及说明
vba
VBA63373 个月前
如何学习VBA之2.1.3 VBA的错误处理
vba