Results 1 to 5 of 5

Comparison Efficiency

Threaded View

jasmine417 Comparison Efficiency 12-21-2011, 09:45 PM
Mordred Re: Comparison Efficiency 12-21-2011, 10:47 PM
jasmine417 Re: Comparison Efficiency 12-21-2011, 11:03 PM
rscsmith Re: Comparison Efficiency 12-22-2011, 12:42 AM
jasmine417 Re: Comparison Efficiency 12-22-2011, 02:07 AM
  1. #1
    Registered User
    Join Date
    11-13-2011
    Location
    Singapore
    MS-Off Ver
    Excel 2010
    Posts
    4

    Question Comparison Efficiency

    Running the macro for a thousand rows took about 12 minutes. Is there any way to improve the speed? Examples provided would be greatly appreciated.



    part of the codes:


    Public Sub Differences(ByVal startRow As Integer, endCol As Integer, pk1 As Integer, pk2 As Integer, pk3 As Integer, mCount As Integer)
    Dim varS2, varS3
    Dim counter As Integer, endrow As Integer, endrow2 As Integer
    Dim rngS2 As Range, rngS3 As Range, c As Range, c2 As Range, c3 As Range
    Dim iRow As Integer, i As Integer
    
    'Retrieve Rows from Sheet2
    Sheets(2).Activate
    Set rngS2 = Sheets(2).Range(Cells(1, 1), Cells(1, endCol))
    endrow = Sheets(2).Cells(Sheets(2).Rows.Count, "A").End(xlUp).Row
    Set rngS2 = Range(rngS2.Rows(startRow), rngS2.Rows(endrow))
    
    'Retrieve Rows from Sheet3
    Sheets(3).Activate
    Set rngS3 = Sheets(3).Range(Cells(1, 1), Cells(1, endCol))
    endrow2 = Sheets(3).Cells(Sheets(3).Rows.Count, "A").End(xlUp).Row
    Set rngS3 = Range(rngS3.Rows(startRow), rngS3.Rows(endrow2))
    
    For Each c2 In rngS2
    On Error GoTo 0
    Let varS2 = Intersect(Sheets(2).UsedRange, c2.EntireRow)
    For Each cc In rngS3
    bCheck = False
    cCheck = False
    Let varS3 = Intersect(Sheets(3).UsedRange, cc.EntireRow)
    For i = 2 To endCol
    'Check if primary keys match
    If varS2(1, pk1) = varS3(1, pk1) And varS2(1, pk2) = varS3(1, pk2) And varS2(1, pk3) = varS3(1, pk3) Then
    'Check for differences
    bCheck = True
    If varS2(1, i) <> varS3(1, i) Then
    cCheck = True
    Exit For
    Else
    cCheck = False
    End If
    End If
    Next i
    Last edited by jasmine417; 12-21-2011 at 10:02 PM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1