我试图比较两个不同工作簿上的两个单元格。如果相等,脚本应该在这些(相同的)工作簿上进一步比较另外两个不同的单元格,并突出显示那些不相等的单元格。比较两个单元格,如果相等,则比较两个不同的单元格,如果不等于,则突出显示结果
我已经试过如下:
Sub Compare()
Dim mycell As Range
Dim shtSheet1 As Worksheet
Dim shtSheet2 As Worksheet
Set shtSheet1 = Workbooks("100Series").Worksheets("Report")
Set shtSheet2 = Workbooks("UserWorkbook").Worksheets("User")
For Each mycell In shtSheet2.UsedRange
If Not mycell.Value = shtSheet1.Cells(mycell.Row, mycell.Column).Value Then
mycell.Interior.Color = vbRed
End If
Next
End Sub
但是,这是行不通的。它会抛出Subscript out of range
错误。我不确定什么超出范围。每张工作表都有3500行,2列宽。
我现在的代码有什么问题?
是否想比较Worbook 1的Cell A1与Worbook 2等的Cell A1等(Cell B310与其他Workbook的Cell B310 ...)? –
它在什么时候会将下标超出范围错误?如果它正在执行'Set shtSheet1 = Workbooks(“100Series”)。Worksheets(“Report”)'命令,可能是因为工作簿被称为“100Series.xlsx”(或类似的东西)。 – YowE3K
当出现错误消息时,消息框中应该有一个“调试”按钮。如果你点击那个按钮,导致错误的行应该以黄色突出显示 – barrowc