找到并突出差异

时间:2016-08-18 06:21:28

标签: excel vba

嗨,我知道有很多关于同一主题的问题和我在这里有问题,他们似乎没有在这里解决我的问题。 我有一项任务是根据两张纸的D列比较两张纸(A和B),我想找到并突出显示B中不存在于A中的行。 代码如下:

Dim i As Long
Dim data As Range
Dim ref As Range
Dim lastRow As Long
Worksheets("B").UsedRange
Set ref = Worksheets("test").Columns("D:D").Value
lastRow = Worksheets("B").UsedRange.Rows.Count

Application.ScreenUpdating = False
Application.DisplayAlerts = False

'     check if data exist in both shts
        For i = 10 To lastRow
            Set data = Worksheets("B").Columns("D:D").Find(ref,LookIn:=xlValues, _
        LookAt:=xlWhole)

            If data Is Nothing Then
                data.EntireRow.Interior.ColorIndex = 36
                Exit For
            Else
            End If
    Next

现在问题是设置ref的行有一个所需对象的错误,并且没有突出显示行。

屏幕更新功能关闭的时间较短,但运行我的代码仍然需要一些时间,这是文件还是代码的问题?

建议将非常感谢。

更新使用以下代码解决任务:

    With Worksheets("test")
    For i = 4 To lastRow
        For j = 4 To lastnewRow
            If Worksheets("test").Cells(i, 9) = Worksheets("B").Cells(j, 9) Then
              Exit For
            Else
                If j = lastnewRow Then
                    Worksheets("test").Cells(i,9).EntireRow.Interior.ColorIndex = 36
                End If
            End If
        Next
    Next
End With

2 个答案:

答案 0 :(得分:0)

试试这段代码:

dataSource.canEditRowAtIndexPath = {dataSource, indexPath in false }

答案 1 :(得分:0)

您可以在没有VBA的情况下轻松完成此操作。您将在Excel中使用的功能称为条件格式。

因此,如果要突出显示Sheet 2中不在Sheet 1列A中的所有单元格,可以在Sheet 1中选择单元格,在条件格式设置窗口中创建新规则并选择

“使用公式确定要格式化的单元格”

然后插入以下公式

=ISNA(MATCH(A1,Sheet1!A:A,0))

并在“格式”下,选择要应用于符合此条件的单元格的样式。

  • MATCH搜索单元格A1中的值(以及您选择的所有其他单元格)并检查它们是否存在于数组Sheet1!A:A中,这是整个列A
  • 如果找不到值,则返回
  • #N/A,因此我们希望表达式为true。这就是为什么我们使用函数ISNA(expression),在这种情况下返回true。