我需要一个vba代码,该代码将比较2个工作表并查找具有多个相同单元格值的行并突出显示这些单元格

时间:2019-02-05 10:15:08

标签: excel vba

我必须比较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
}

1 个答案:

答案 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