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