嗨,我知道有很多关于同一主题的问题和我在这里有问题,他们似乎没有在这里解决我的问题。 我有一项任务是根据两张纸的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
答案 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。