我想比较三个工作表中的三个不同的数据列,并突出显示使用VBA的差异。我对VBA很陌生,对编程知之甚少。到目前为止,这是我做了什么:突出显示跨工作表的列中的差异
worksheet1
:
Sub compare_cols()
Dim myRng As Range
Dim lastCell As Long
'Get the last row
Dim lastRow As Integer
lastRow = ActiveSheet.UsedRange.Rows.Count
'Debug.Print "Last Row is " & lastRow
Dim c As Range
Dim d As Range
Application.ScreenUpdating = False
For Each c In Worksheets("worksheet1").Range("A2:A" & lastRow).Cells
For Each d In Worksheets("worksheet2").Range("A2:A" & lastRow).Cells
c.Interior.Color = vbGreen
If (InStr(1, d, c, 1) > 0) Then
c.Interior.Color = vbWhite
Exit For
End If
Next
Next
For Each c In Worksheets("worksheet2").Range("A2:A" & lastRow).Cells
For Each d In Worksheets("worksheet1").Range("A2:A" & lastRow).Cells
c.Interior.Color = vbYellow
If (InStr(1, d, c, 1) > 0) Then
c.Interior.Color = vbWhite
Exit For
End If
Next
Next
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Worksheet 2:
Sub compare_cols()
Dim myRng As Range
Dim lastCell As Long
'Get the last row
Dim lastRow As Integer
lastRow = ActiveSheet.UsedRange.Rows.Count
'Debug.Print "Last Row is " & lastRow
Dim c As Range
Dim d As Range
Application.ScreenUpdating = False
For Each c In Worksheets("worksheet2").Range("A2:A" & lastRow).Cells
For Each d In Worksheets("worksheet3").Range("A2:A" & lastRow).Cells
c.Font.Color = rgbRed
If (InStr(1, d, c, 1) > 0) Then
c.Font.Color = rgbBlack
Exit For
End If
Next
Next
For Each c In Worksheets("worksheet3").Range("A2:A" & lastRow).Cells
For Each d In Worksheets("worksheet2").Range("A2:A" & lastRow).Cells
c.Interior.Color = vbRed
c.Font.Color = rgbWhite
If (InStr(1, d, c, 1) > 0) Then
c.Interior.Color = vbWhite
c.Font.Color = rgbBlack
Exit For
End If
Next
Next
Application.ScreenUpdating = True
End Sub
。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
问题我有:
- 在比较
worksheet1
和worksheet2
,是不是在worksheet2
在worksheet1
突出绿色,是不是在worksheet1
数据,并在数据突出显示黄色worksheet2
。 - 例如
worksheet2
中的一些数据以黄色突出显示,但在worksheet1
中找到,这应该不会发生。然后在比较worksheet2
和worksheet3
时,不在worksheet3
中的项目有一个红色字体,在worksheet2
中,而不在worksheet2
中的项目用白色字体高亮显示为红色,在worksheet3
中。 - 例如,
worksheet2
中的数据具有红色字体,但在worksheet3
中找到,这应该不会发生。
你能告诉我为什么我的VBA代码不工作,或者我可以做什么?
谢谢BK201,你是如何编辑我的问题的方式?你也有任何建议,我的问题? – user3138463
在发布时阅读帮助部分。所有的技巧都在那里。 :)另外,这里可以使用一些技巧。首先,虽然,不会简单的条件格式化工作?你有没有尝试过? :) – Manhattan
我以为你不能使用条件格式为Excel 2007中的不同工作表? – user3138463