Ошибка при сравнении двух наборов данных с использованием массивов - PullRequest
0 голосов
/ 14 сентября 2011

В Excel 2010 мне приходится сравнивать две версии (старая, новая) одних и тех же базовых данных

Я использовал массивы для хранения старых и новых значений, а затем попытался сравнить соответствующие значения.Если значения не совпадают, фон ячейки становится желтым.

Все работает нормально до оператора

If vaNewValues(i, j).Value <> vaOldValues(i, j).Value Then

При этом операторе я получаю ошибку времени выполнения '424':Требуется объект

Sub File_Comparison()

'Open the old file

OldFN = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls), *.xls", Title:="Please open old file")
Workbooks.Open Filename:=OldFN
End If

'Store the range of cells into an array 'vaOldValues

vaOldValues = Range("b9:r54").Value

'Close old file

ActiveWorkbook.Close False

'Open the new file
NewFN = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls), *.xls", Title:="Please open new file")
Workbooks.Open Filename:=NewFN

'Store the range of cells into an array 'vaNewValues
vaNewValues = Range("b9:r54").Value

'i= row
'j=column

For i = 1 To UBound(vaNewValues, 1) 'max row number
For j = 1 To UBound(vaNewValues, 2) 'max column number


*If vaNewValues(i, j).Value <> vaOldValues(i, j).Value Then*

Range("b9:r54").Cells(i, j).Interior.Color = 65535

End If

Next j
Next i

End Sub

1 Ответ

2 голосов
/ 14 сентября 2011

Работа с массивами не совпадает с диапазонами, попробуйте вместо этого получить доступ к значению в массиве

If vaNewValues(i, j) <> vaOldValues(i, j) Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...