Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 复杂比较_Vba_Excel - Fatal编程技术网

Vba 复杂比较

Vba 复杂比较,vba,excel,Vba,Excel,我有点被难住了。我试图查看ColA中的唯一数字,得到同一行上的文本,并将其与ColB中的相同(有时重复)数字进行比较,得到同一行上的文本。如果文本不同,我想在ColC中突出显示单元格中的差异 这很难解释,所以这里有一张图片 我知道可乐中的1=必需的。因此,我想查看ColB中的所有数字1s,并确保ColC=Required中的同一行。在ColA中,2、3、4和5都是ColC所必需的。在ColB中,3和4应该在ColC中有一个必需的颜色,但它说明了一些不同的东西,所以我想把这些细胞涂成橙色。这有意

我有点被难住了。我试图查看ColA中的唯一数字,得到同一行上的文本,并将其与ColB中的相同(有时重复)数字进行比较,得到同一行上的文本。如果文本不同,我想在ColC中突出显示单元格中的差异

这很难解释,所以这里有一张图片

我知道可乐中的1=必需的。因此,我想查看ColB中的所有数字1s,并确保ColC=Required中的同一行。在ColA中,2、3、4和5都是ColC所必需的。在ColB中,3和4应该在ColC中有一个必需的颜色,但它说明了一些不同的东西,所以我想把这些细胞涂成橙色。这有意义吗?我曾想过使用Vlookup,但我不确定它会如何工作

在这个时候,我没有代码,但是如果我想出了这样的方法,我会发回,或者如果我能让它工作,我肯定会发布解决方案

我认为代码应该是这样的,但这不符合我上面描述的逻辑

Sub StillTrying()

Dim mCell As Range
Dim R As Long
Dim Rng As Range
Dim Agent As Range
Dim AgentList As Range
Application.ScreenUpdating = False

Set AgentList = ActiveSheet.Range("A2:A20")
Set Rng = ActiveSheet.Range("B2:B20")

For Each Agent In AgentList
    For Each mCell In Rng
    Debug.Print mCell.Address
    Debug.Print Agent.Address

        If mCell.Value = Agent.Value And mCell.Offset(0, 1).Value = Agent.Offset(0, 2).Value Then
        ' do nothing
        Else
            mCell.Offset(0, 1).Resize(, 1).Select
            With Selection.Interior
                .Color = 39423
            End With
            R = R + 1
        End If
    Next mCell
Next Agent

End Sub
基本上,C和C8应该是橙色的


谢谢大家。

如果我理解正确,您可以使用条件格式实现这一点

在单元格
C2
中,应用以下条件格式规则:

然后将该单元格的格式复制到C列中的每个其他单元格



如果您的防火墙正在阻止
i.stack.imgur.com
上的图像,该图像将显示
编辑格式规则
对话框,选择设置为
,使用公式确定要格式化的单元格
,公式为
=NOT(C2=VLOOKUP(B2,a:C,3,FALSE))
,以及显示橙色填充的格式。

如果我理解正确,您可以使用条件格式实现这一点

在单元格
C2
中,应用以下条件格式规则:

然后将该单元格的格式复制到C列中的每个其他单元格



如果您的防火墙正在阻止
i.stack.imgur.com
上的图像,该图像将显示
编辑格式规则
对话框,选择设置为
,使用公式确定要格式化的单元格
,公式为
=NOT(C2=VLOOKUP(B2,a:C,3,FALSE))
,格式显示橙色填充。

然后复制该单元格的格式-或者,只需将条件格式的应用范围设置为要应用的单元格。但是,在公式中,列可能应该是绝对的(
$
),特别是如果您改变主意,希望突出显示整行而不是列C中的一个单元格。@Mat'sMug-我确实想过在条件格式对话框中设置范围-但这需要另一个屏幕截图,我很懒!:D(简单地说,我确实考虑过绝对引用——但我不确定哪些是绝对引用,哪些是相对引用,例如,如果将C列移到X列,
3
,则必须更改,
3
,因此这开始变得很难描述。)我看不到图像。我很确定它被我公司的防火墙屏蔽了。你能编辑你的帖子并在上面按Ctrl+K组合键以便我能看到它吗?谢谢。@r\u michael-这不是代码,所以Ctrl-K没有帮助。我添加了一个单词来描述对话应该是什么样子。希望你能跟上。啊!使用公式确定要格式化的单元格!!明亮的非常感谢!!然后复制该单元格的格式-或者,只需将条件格式的应用范围设置为要应用的单元格。但是,在公式中,列可能应该是绝对的(
$
),特别是如果您改变主意,希望突出显示整行而不是列C中的一个单元格。@Mat'sMug-我确实想过在条件格式对话框中设置范围-但这需要另一个屏幕截图,我很懒!:D(简单地说,我确实考虑过绝对引用——但我不确定哪些是绝对引用,哪些是相对引用,例如,如果将C列移到X列,
3
,则必须更改,
3
,因此这开始变得很难描述。)我看不到图像。我很确定它被我公司的防火墙屏蔽了。你能编辑你的帖子并在上面按Ctrl+K组合键以便我能看到它吗?谢谢。@r\u michael-这不是代码,所以Ctrl-K没有帮助。我添加了一个单词来描述对话应该是什么样子。希望你能跟上。啊!使用公式确定要格式化的单元格!!明亮的非常感谢!!