Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用数组比较两组数据时出错_Excel_Vba - Fatal编程技术网

Excel 使用数组比较两组数据时出错

Excel 使用数组比较两组数据时出错,excel,vba,Excel,Vba,在Excel2010中,我必须比较相同基础数据的两个版本(旧版本和新版本) 我使用数组存储旧值和新值,然后尝试比较相应的值。如果值不相同,单元格背景将变为黄色 在发表声明之前,一切正常 If vaNewValues(i, j).Value <> vaOldValues(i, j).Value Then 如果vaNewValues(i,j).Value VAOLDVALLUES(i,j).Value然后 在这个语句中,我得到运行时错误“424”:需要对象 Sub File_Comp

在Excel2010中,我必须比较相同基础数据的两个版本(旧版本和新版本)

我使用数组存储旧值和新值,然后尝试比较相应的值。如果值不相同,单元格背景将变为黄色

在发表声明之前,一切正常

If vaNewValues(i, j).Value <> vaOldValues(i, j).Value Then
如果vaNewValues(i,j).Value VAOLDVALLUES(i,j).Value然后
在这个语句中,我得到运行时错误“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
子文件\u比较()
'打开旧文件
OldFN=Application.GetOpenFilename(文件过滤器:=“Excel文件(*.xls),*.xls”,标题:=“请打开旧文件”)
工作簿。打开的文件名:=OldFN
如果结束
“将单元格范围存储到数组”vaOldValues
vaOldValues=范围(“b9:r54”)。值
'关闭旧文件
ActiveWorkbook.Close为False
'打开新文件
NewFN=Application.GetOpenFilename(文件过滤器:=“Excel文件(*.xls),*.xls”,标题:=“请打开新文件”)
工作簿。打开的文件名:=NewFN
'将单元格范围存储到阵列中'VanEW值
vaNewValues=范围(“b9:r54”)。值
“i=行
'j=列
对于i=1到UBound(值为1)的最大行数
对于j=1到UBound(VANEWWVALUES,2)“最大列数
*如果vaNewValues(i,j).VAOLDVALLUES(i,j).Value则*
范围(“b9:r54”)。单元格(i,j)。内部颜色=65535
如果结束
下一个j
接下来我
端接头

使用数组与使用范围不同,请尝试此操作以访问数组中的值

If vaNewValues(i, j) <> vaOldValues(i, j) Then
如果vaNewValues(i,j)VAOLDVALES(i,j),则