我必须比较excel的两个工作表之间的数据,并找到具有相似值的行。我在一行中有多个值,这些值与另一张工作表中另一行中的值匹配。我希望强调这些价值观。
我尝试了一种代码,该代码可用于小数据,例如每张纸10行的小数据。但是当我在更多数据上使用它时,Excel只是没有响应,即使等待了很长时间也无法正常工作。经过更多研究后,我发现vba和excel之间的开销导致了漫长的等待和无反应的行为。请为我提供与该代码相似的代码,但在很短的时间内即可。
void right(){
for(int i=0;i<56;i++){
for(int k=0;k<56;k++){
if(snakeHead[i][k] == 1 && i == 55){
game = 0;
return;
} else if(snakeHead[i][k] == 1 && i != 55){
snakeHead[i+1][k] = 1;
snakeHead[i][k]=0;
return;
}
} // end k loop
} // end i loop
}
答案 0 :(得分:0)
在循环中添加 DoEvents 应该可以解决“ excel无响应”问题。
Sub CompareRanges()
'Update 20130815
Dim WorkRng1 As Range, WorkRng2 As Range, Rng1 As Range, Rng2 As Range
xTitleId = "KutoolsforExcel"
Set WorkRng1 = Application.InputBox("Range A:", xTitleId, "", Type:=8)
Set WorkRng2 = Application.InputBox("Range B:", xTitleId, Type:=8)
For Each Rng1 In WorkRng1
DoEvents
rng1Value = Rng1.Value
For Each Rng2 In WorkRng2
DoEvents
If rng1Value = Rng2.Value Then
Rng1.Interior.Color = VBA.RGB(0, 255, 0)
Rng2.Interior.Color = VBA.RGB(0, 255, 0)
Exit For
End If
Next
Next
End Sub