我有这个宏允许您在“Sheet1”中交叉引用“Sheet2”,其中“Sheet1”是包含我的主数据的工作表。这里的想法是将工作表 2 与主数据进行比较,看看它是否匹配。这个宏的问题是它只能在有限的范围内进行比较。我想知道如果我添加另一个也将用于交叉引用的列,如何使这更加动态或灵活。
这是我的床单样本。
Example:
Sheet1
Name ID Class Name Taken?
John Riley 0001 Painting Yes
Bob Johnson 0101 Painting No
Matthew Ward 1111 Math Yes
Sheet 2:
Name ID Class Name Taken?
Matthew Ward 1111 Math Yes
Bob Johnson 0101 Painting No
Warren Renner 2222 Drama No
John Riley 0001 Painting Yes
如果在工作表中添加其他列,我需要在宏中进行哪些更改以使其比较?
Example:
Sheet1
Name ID Class Name Taken? Date Taken
John Riley 0001 Painting Yes 8/25/13
Bob Johnson 0101 Painting No
Matthew Ward 1111 Math Yes 9/20/10
Sheet 2:
Name ID Class Name Taken? Date Taken
Matthew Ward 1111 Math Yes 9/20/10
Bob Johnson 0101 Painting No -
Warren Renner 2222 Drama No -
John Riley 0001 Painting Yes 8/25/13
代码:
Sub Compare_Data()
Dim rngData2 As Range
Dim rngData1 As Range
Dim cell2 As Range
Dim cell1 As Range
Dim rLastCell As Range
Set rngData2 = Worksheets("Sheet2").Range("B3", Worksheets("Sheet2").Range("B65536").End(xlUp))
Set rngData1 = Worksheets("Sheet1").Range("B3", Worksheets("Sheet1").Range("B65536").End(xlUp))
' Check customers in "Sheet2" to "Sheet1"
For Each cell2 In rngData2
For Each cell1 In rngData1
With cell1
If .Offset(0, 0) = cell2.Offset(0, 0) And _
.Offset(0, 1) = cell2.Offset(0, 1) And _
.Offset(0, 2) = cell2.Offset(0, 2) And _
.Offset(0, 3) = cell2.Offset(0, 3) Then
.Offset(0, -1).Range("A1:F1").Interior.ColorIndex = 3
cell2.Offset(0, 4) = .Offset(0, 4)
End If
End With
Next cell1
Next cell2
结束子