【问题标题】:Compare the rows in excel and highlight the difference比较excel中的行并突出显示差异
【发布时间】:2015-03-24 04:58:16
【问题描述】:

我是 excel 宏的新手,我正在尝试将 sheet1 中的值与 sheet2 中的值进行比较,应该在 sheet3 中更新差异并突出显示“False”的值。

我使用 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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我做这样的事情...... 我将向您展示我的工作,然后您可以将其复制到您的业务中

    我有一列具有相同的名称,每次输入我已有的名称时,我都会将另一列标记为唯一的或重复的。

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

    让我试着解释一下:

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

    看看它是否对你有帮助。

    【讨论】:

      【解决方案2】:

      代码:

      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
      

      理论:

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

      【讨论】:

      • 感谢 Jbarker2160。它按我预期的方式工作。万分感谢。现在我想要,而不是限制列比较。你能告诉我如何尽量不限制列。
      • 这有点困难。您只需使用来自 Sheet1 和 Sheet2 的 Sheet.UsedRange 的列数,并将较大的列数用于比较中的最后一列。请用绿色复选标记对此进行标记,以表明我回答了您的原始问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      相关资源
      最近更新 更多