如何查询错误的数据?并将错误的数据字体标记为红色、背景色标记为黄色。

数据查错结果

思路

1、将正确数据写入字典:球员姓名&统计项目作为关键字,各项目数据作为条目。

2、循环要处理数据,获取球员各项目数据,跟字典数据相比较,数据不一致,则将字典数据赋值给出错的数据。同时,将出错数据所在单元格Union(联合)到一起。

3、将Union单元格字体改为红色,背景色改为黄色。并用正确数据覆盖掉错误数据。

代码

Private Sub CommandButton1_Click()

On Error Resume Next

Dim arr, i%, j%, d As Object, rng As Range

Set d = CreateObject("scripting.dictionary")

arr = Range("A17").CurrentRegion

For i = 2 To UBound(arr)

For j = 2 To UBound(arr, 2)

d(arr(i, 1) & arr(1, j)) = arr(i, j)

Next j

Next i

arr = Range("A1").CurrentRegion

For i = 2 To UBound(arr)

For j = 2 To UBound(arr, 2)

If arr(i, j) <> d(arr(i, 1) & arr(1, j)) Then

If rng Is Nothing Then Set rng = Cells(i, j)

Set rng = Union(rng, Cells(i, j))

arr(i, j) = d(arr(i, 1) & arr(1, j))

End If

Next j

Next i

If MsgBox("是否标记错误的数据?", vbYesNo) = vbNo Then Exit Sub

rng.Interior.Color = vbYellow

rng.Font.Color = vbRed

If MsgBox("是否修正错误的数据?", vbYesNo) = vbNo Then Exit Sub

Range("A1").CurrentRegion = arr

Set d = Nothing

End Sub