比较excel中的行并突出显示差异

时间:2014-10-09 16:51:19

标签: excel-vba vba excel

我是excel宏的新手,我正在尝试将sheet1中的值与sheet2中的值进行比较,差异应该在sheet3中更新,并突出显示& #34;假"

我使用 EXACT 功能进行比较=EXACT( Sheet1!A1, Sheet2!A1 )

从A1到DJ70的细胞范围。

您可以通过获取用户的值数并比较该特定行数来帮助创建宏。例如,如果用户在输入框中指定10,则应比较10行。请帮助我。

很抱歉没有提供代码。我通过给出范围来尝试下面的代码。但我需要知道如何从用户获取值并比较特定数量的行。

Sub compare()
     Sheet3.Activate
     Range("A6").Select
     ActiveCell.FormulaR1C1 = "=EXACT(Sheet1!R[-5]C,Sheet2!R[-5]C)"
     Range("A6").Select
     Selection.Copy
     Range("A6:DJ70").Select
     ActiveSheet.Paste
     Range("A6").Select
End Sub

2 个答案:

答案 0 :(得分:0)

我这样做...... 我会告诉你我的工作,然后你可以将它复制到你的公司

我有一个名称相同的列,每次我输入一个我已经拥有的名称,我将另一列标记为唯一或重复。

为此,我使用这个公式 = IF(COUNTIF($ B $ 2:$ B $ 100; $ B $ 2:$ B $ 100)= 1;"唯一&#34 ;;"重复");

让我试着解释一下:

NAME-COLUMN | UNIQUE-COLUMN
---------------------------
JORGE       | UNIQUE
JOHN        | REPEATED
ROBERT      | UNIQUE
MARIA       | UNIQUE
JOHN        | REPEATED

检查一下它是否对您有帮助。

答案 1 :(得分:0)

代码:

Sub Compare()
    Dim mx As Long
    Dim i As Long
    Dim j As Long

    On Error GoTo ErrHandling

ReDo:

    mx = CLng(InputBox("Enter Number of Rows to Search:", "Entry Required: ...", 1))

    If mx < 1 Or mx > 70 Then
        MsgBox "Please Enter a valid number of rows!"
        GoTo ReDo
    End If

    For i = 1 To mx

        Sheet3.Range(Sheet3.Cells(i, 1), Sheet3.Cells(i, 114)).FormulaR1C1 = "=EXACT(Sheet1!RC, Sheet2!RC)"

    Next i

    Exit Sub

ErrHandling:

    If Err = 13 Then
        MsgBox "Rows must be a number!"
        GoTo ReDo
    Else
        MsgBox "An Unexpected Error Has Occured!"
    End If

End Sub

理论值:

只需遍历指示的行和填写您使用的公式的所有列。