Results 1 to 7 of 7

Thread: Improving Speed Comparing Multiple Columns

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Member
    Join Date
    Nov 2011
    Posts
    41
    Rep Power
    0
    Plese try this one.
    Code:
    Sub OptimzeSpeed()
    
        Dim varArrSheet1        As Variant
        Dim varArrSheet2        As Variant
        
        Dim lngCtr1             As Long
        Dim lngCtr2             As Long
        
        Const strSheetName1      As String = "CURRENT"
        Const strSheetName2      As String = "PREVIOUS"
        
        varArrSheet1 = ThisWorkbook.Worksheets(strSheetName1).UsedRange
        varArrSheet2 = ThisWorkbook.Worksheets(strSheetName2).UsedRange
        
        ThisWorkbook.Worksheets(strSheetName1).UsedRange.ClearContents
        
        
        For lngCtr1 = LBound(varArrSheet1) To UBound(varArrSheet1)
            For lngCtr2 = LBound(varArrSheet2) To UBound(varArrSheet2)
                If varArrSheet1(lngCtr1, 5) = varArrSheet1(lngCtr2, 5) Then
                    If varArrSheet1(lngCtr1, 10) <> varArrSheet1(lngCtr2, 10) Then
                        varArrSheet1(lngCtr1, 18) = varArrSheet1(lngCtr2, 10)
                    End If
                    
                    If varArrSheet1(lngCtr1, 11) <> varArrSheet1(lngCtr2, 11) Then
                        varArrSheet1(lngCtr1, 19) = varArrSheet1(lngCtr2, 11)
                    End If
                    
                    If varArrSheet1(lngCtr1, 12) <> varArrSheet1(lngCtr2, 12) Then
                        varArrSheet1(lngCtr1, 20) = varArrSheet1(lngCtr2, 12)
                    End If
                End If
            Next
        Next
        With ThisWorkbook.Worksheets(strSheetName1)
            .UsedRange.ClearContents
            .Range(A1).Resize(UBound(varArrSheet1, 1), UBound(varArrSheet1, 2)) = varArrSheet1
        End With
        
    End Sub
    Regards
    Prince

  2. #2
    Junior Member
    Join Date
    Mar 2012
    Posts
    3
    Rep Power
    0
    Thank you for your replay Prince. I get the subscript out of range error at this line.

    Code:
    If varArrSheet1(lngCtr1, 5) = varArrSheet1(lngCtr2, 5) Then

Similar Threads

  1. Concatenate Two Or Multiple Columns In To One
    By william516 in forum Excel Help
    Replies: 10
    Last Post: 07-06-2013, 12:09 AM
  2. Replies: 7
    Last Post: 05-15-2013, 02:56 PM
  3. Replies: 4
    Last Post: 04-05-2013, 12:08 PM
  4. Replies: 2
    Last Post: 06-14-2012, 04:10 AM
  5. Speed up Loop VBA
    By PcMax in forum Excel Help
    Replies: 15
    Last Post: 04-09-2012, 04:20 PM

Posting Permissions

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