如何查询错误的数据?并将错误的数据字体标记为红色、背景色标记为黄色。
数据查错结果
思路
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