EXCEL VBA 的问题?

表格中,我想判断,B1和D1:J1这8个单元格之间是否有重复的数据,如果有,就在重复的2个上面显示红色.有多行的数据需要判断,列数有可能会增加,但是C列肯定是不参与判断的... 表格中,我想判断,B1和D1:J1这8个单元格之间是否有重复的数据,如果有,就在重复的2个上面显示红色.有多行的数据需要判断,列数有可能会增加,但是C列肯定是不参与判断的.就是隔着一个C列.请问一下这个代码应该怎么写啊? 展开
 我来答
阳光上的桥
2021-03-09 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

代码在下面这个地方写就可以,但是有了这个功能后,保存会卡得很惨,特殊是数据较大的时候,因为检测单元格的格式只有一个一个的扫描,这样非常耗时。

写好代码之后,保存时执行效果如下:

——跳到有填充颜色的单元格,提示不允许保存,然后返回。

代码位置如下图,千万注意位置的重要性:

代码文本为:

Option Explicit


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Dim st As Worksheet, rng As Range

    For Each st In Sheets

        If st.Name = "电1" Or st.Name = "电2" Or st.Name = "电3" Then

            For Each rng In st.UsedRange.Cells

                If rng.Interior.Color <> 16777215 Then

                    Application.Goto rng

                    MsgBox "这个单元格有填充颜色,不允许保存"

                    Cancel = True

                    Exit Sub

                End If

            Next rng

        End If

    Next st

End Sub

leeming6666
2021-03-08 · TA获得超过3452个赞
知道大有可为答主
回答量:3240
采纳率:85%
帮助的人:725万
展开全部

使用条件格式,先选中区域,比如D1:J7,如图,开始,条件格式,新建格式规则,使用公式确定……,输入:=D1=$B1,格式,填充,红色,确定,就可以了。这样每一行的D列到J列中,只要有和该行B列相同的数字,就会加上红色底色,有什么不明白了再问我。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柔软的Bp
科技发烧友

2021-03-08 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:66%
帮助的人:8963万
展开全部
那个2?D:J的,有和b相同的填充红色?
Sub AA()
Columns("d:j").Interior.Color = xlNone
Dim i, k
For i = 1 To Range("b65536").End(xlUp).Row
For k = 4 To 10
If Cells(i, "b") = Cells(i, k) Then
Cells(i, k).Interior.Color = 255
End If
Next
Next
End Sub
追问
辛苦老师,不光是D:J对比B,如果D:J之间有相同的也需要变红.
追答
Sub AA()
Columns("d:j").Interior.Color = xlNone
Dim i, k
For i = 1 To Range("b65536").End(xlUp).Row
For k = 4 To 10
x = WorksheetFunction.CountIf(Range(Cells(i, "D"), Cells(i, "j")), Cells(i, k))
If Cells(i, "b") = Cells(i, k) Or x > 1 Then
Cells(i, k).Interior.Color = 255
End If
Next
Next

End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BUG_UPDATE
2021-03-08 · TA获得超过1160个赞
知道大有可为答主
回答量:3650
采纳率:60%
帮助的人:680万
展开全部
你要找一行数据中有几个2就这样写的
=COUNTIF(B1:J1,"2")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2021-03-08 · 超过17用户采纳过TA的回答
知道答主
回答量:546
采纳率:11%
帮助的人:27.9万
展开全部
循环,在目标区域单元格依次识别指定单元格是否相同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式