我正在excel 2007 vba中迈出第一步。我要做的是编写一个宏来比较我的上一个和我的第二个excel表,并突出显示最后一个的差异。正如您在下面看到的那样,我编写了以下代码,当我使用调试模式时Excel不显示任何错误,但它没有标记任何已进行更改的单元格,而这是假设要做的。有人会介意看看并纠正我在下面的代码中的潜在错误。非常感谢你。
Sub compare()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim rCount As Long, cCount As Long
Set sh1 = Worksheets(Sheets.Count - 1)
Set sh2 = Worksheets(Sheets.Count)
rCount = sh1.Cells(Rows.Count, 1).End(xlUp).Row
cCount = sh1.Cells(Rows.Count, 1).End(xlUp).Row
Dim r As Long, c As Integer
For r = 1 To rCount
For c = 1 To cCount
If sh1.Cells(r, c) <> sh2.Cells(r, c) Then
sh2.Cells(r, c).Interior.ColorIndex = 3
End If
Next c
Next r
End Sub
答案 0 :(得分:0)
我的猜测是你在sh1中只有一行数据。当您分配rcount时,您获得的值为1,当您分配cCount时,您将获得相同的值,因为您的分配方式与rcount相同。然后,您可能遍历单行和单列,仅比较单个单元格,然后退出子例程。
也许你的意思是:cCount = sh1.Cells(1, ColumnsCount).End(xltoLeft).Column