Vba 比较不同工作表上的相同范围

Vba 比较不同工作表上的相同范围,vba,compare,range,Vba,Compare,Range,我有一份包含多张工作表(工作表1、2…等)和一张“主”工作表的工作簿。我需要从a:C列中选择一个范围,直到它遇到一个值为(tva)的行(包括这些行)。我想比较一下从Master到其他图纸的范围,并强调差异。 例如,母版纸的A3值为“m” 这就是我目前所拥有的。我对这一点很陌生,所以任何建议都很感激:) 您可以尝试下面的代码,虽然它没有覆盖其他列,但小调整只需要检查C列(第3列): Sub comp() 将ws设置为工作表 变暗值行长,行长 对于此工作簿中的每个ws。工作表 ws.Activate

我有一份包含多张工作表(工作表1、2…等)和一张“主”工作表的工作簿。我需要从a:C列中选择一个范围,直到它遇到一个值为(tva)的行(包括这些行)。我想比较一下从Master到其他图纸的范围,并强调差异。 例如,母版纸的A3值为“m”

这就是我目前所拥有的。我对这一点很陌生,所以任何建议都很感激:)


您可以尝试下面的代码,虽然它没有覆盖其他列,但小调整只需要检查C列(第3列):

Sub comp()
将ws设置为工作表
变暗值行长,行长
对于此工作簿中的每个ws。工作表
ws.Activate
valuerow=Cells.Find(What:=“tva”,After:=范围(“A1”),LookIn:=xlValues,SearchDirection:=xlPrevious)。行
对于irow=1到valuerow
如果ws.Cells(irow,1).Value工作表(“主”).Cells(irow,1).Value则
ws.Cells(irow,1).Interior.Color=vbYellow
如果结束
如果ws.Cells(irow,2).Value工作表(“主”).Cells(irow,2).Value则
ws.Cells(irow,2).Interior.Color=vbYellow
如果结束
下一个
下一个
端接头

为什么突出显示C,有什么原因吗?因为当我将母版纸与其他母版纸进行比较时,母版纸在A3上的值为“m”,而其他图纸在A3上的值为“C”,我需要突出显示。非常感谢!对于B列和C列,如果我写“ws.Cells(irow,3)”就可以了?是的,您可以通过将列值更改为2,3来重复if函数,然后将获得相同的结果。您的假设是正确的,您可以在工作表中执行以测试结果。查看我编辑的结果并投票或接受帮助:)
Sub comp()
 Dim ws As Worksheet
 Dim rngCell As Range
    For Each ws In ThisWorkbook.Worksheets
    ws.Activate
    rngCell = Columns("A:C").Resize(Columns("A:C").Find(What:="tva", After:=Range("A1"), LookIn:=xlValues, SearchDirection:=xlPrevious).Row)
    rngCell.Select
     For Each rngCell In ws.Range
             If Not rngCell = Worksheets("Master").Cells(rngCell.Row, rngCell.Column) Then
                rngCell.Interior.Color = vbYellow
             End If
       
    Next ws

 
 
End Sub
Sub comp()
Dim ws As Worksheet
Dim valuerow As Long, irow As Long

For Each ws In ThisWorkbook.Worksheets
    ws.Activate
    valuerow = Cells.Find(What:="tva", After:=Range("A1"), LookIn:=xlValues, SearchDirection:=xlPrevious).Row

    For irow = 1 To valuerow
    
        If ws.Cells(irow, 1).Value <> Worksheets("Master").Cells(irow, 1).Value Then
            ws.Cells(irow, 1).Interior.Color = vbYellow
        End If
    
        If ws.Cells(irow, 2).Value <> Worksheets("Master").Cells(irow, 2).Value Then
         ws.Cells(irow, 2).Interior.Color = vbYellow
        End If
    
    Next

Next

End Sub