Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 911|回复: 8

[已解决]求当S2=中,K3=中时,两者相同时,单元格填充颜色

[复制链接]
发表于 2022-8-16 11:07 | 显示全部楼层 |阅读模式
本帖最后由 ruhong18 于 2022-8-16 17:31 编辑

用函数或者VBA代码,将S列与K列上下相隔一行,如当S2=中,K3=中时,两者相同时,单元格填充颜色,当S5=中,K6=中时,当S8=下,K9=下时,两者相同时,单元格填充颜色,依此类推….
最佳答案
2022-8-16 17:03
Sub tt()
    Dim r%, ar, i, k
    ar = Range("K1:S" & Cells(Rows.Count, 11).End(xlUp).Row)
    Columns("k:S").Interior.ColorIndex = xlNone
    For r = 2 To UBound(ar)
        If ar(r, 1) <> "" Then
            For k = 1 To Len(ar(r, 1))
                For i = 1 To Len(ar(r - 1, 9))
                    If Mid(ar(r, 1), k, 1) = Mid(ar(r - 1, 9), i, 1) Then Union(Cells(r, 11), Cells(r - 1, 19)).Interior.ColorIndex = 45
                Next i
            Next k
        End If
    Next r
End Sub

求助.zip

2.16 KB, 下载次数: 4

发表于 2022-8-16 12:10 | 显示全部楼层
Sub test()
    Dim arr, brr, i%
    arr = Range("s2").CurrentRegion
    brr = Range("k2").CurrentRegion
    For i = 1 To UBound(arr) - 1
        If arr(i, 1) = brr(i + 1, 1) Then
            Range("s" & i + 1).Interior.Color = 10079487
            Range("k" & i + 2).Interior.Color = 10079487
        End If
    Next i
End Sub
回复

使用道具 举报

发表于 2022-8-16 12:17 | 显示全部楼层
两次条件格式:从s2开始选择范围,公式:=$S2=$K3
                    :从k2开始选择范围,公式:=$K2=$S1
回复

使用道具 举报

发表于 2022-8-16 12:23 | 显示全部楼层
本帖最后由 我行我速2008 于 2022-8-16 12:34 编辑

Sub tt()
    Dim r%, ar
    ar = Range("K1:S" & Cells(Rows.Count, 11).End(xlUp).Row)
    Columns("k:S").Interior.ColorIndex = xlNone
    For r = 2 To UBound(ar)
        If ar(r, 1) <> "" And ar(r, 1) = ar(r - 1, 9) Then
            Union(Cells(r, 11), Cells(r - 1, 19)).Interior.ColorIndex = 45
        End If
    Next r
End Sub
回复

使用道具 举报

 楼主| 发表于 2022-8-16 13:27 | 显示全部楼层
我行我速2008 发表于 2022-8-16 12:23
Sub tt()
    Dim r%, ar
    ar = Range("K1:S" & Cells(Rows.Count, 11).End(xlUp).Row)

感谢帮助,代码测试正确,如果S列与K列上下相隔一行,如当S2包含K3任意字符时,单元格填充颜色,依此类推….的话,代码可以怎么修改吗?

求助2.zip

7.78 KB, 下载次数: 10

回复

使用道具 举报

发表于 2022-8-16 17:03 | 显示全部楼层    本楼为最佳答案   
Sub tt()
    Dim r%, ar, i, k
    ar = Range("K1:S" & Cells(Rows.Count, 11).End(xlUp).Row)
    Columns("k:S").Interior.ColorIndex = xlNone
    For r = 2 To UBound(ar)
        If ar(r, 1) <> "" Then
            For k = 1 To Len(ar(r, 1))
                For i = 1 To Len(ar(r - 1, 9))
                    If Mid(ar(r, 1), k, 1) = Mid(ar(r - 1, 9), i, 1) Then Union(Cells(r, 11), Cells(r - 1, 19)).Interior.ColorIndex = 45
                Next i
            Next k
        End If
    Next r
End Sub

评分

参与人数 1学分 +1 收起 理由
ruhong18 + 1 学习了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2022-8-16 17:31 | 显示全部楼层
哥儿- 发表于 2022-8-16 12:10
Sub test()
    Dim arr, brr, i%
    arr = Range("s2").CurrentRegion

感谢帮助~
回复

使用道具 举报

 楼主| 发表于 2022-8-16 17:32 | 显示全部楼层
我行我速2008 发表于 2022-8-16 12:23
Sub tt()
    Dim r%, ar
    ar = Range("K1:S" & Cells(Rows.Count, 11).End(xlUp).Row)

感谢帮助~
回复

使用道具 举报

发表于 2022-8-16 20:49 | 显示全部楼层
认为行就选为最佳答案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 17:47 , Processed in 0.365311 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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