Merging huge amount of data from two different workbooks into Master book based on multiple condition VBA

Denin Srmic

New Member
Joined
Apr 28, 2020
Messages
19
Office Version
  1. 365
Platform
  1. Windows
Hello,

I have two workbooks Master and Search, and within workbooks there is one spreadsheet in each book. Master book contains over 220 000 rows, whereas Search book has 35 000 rows. Both Sheets have the same number of Columns (216) ordered the same way and with the same Header names.

My task is to pull all the data from the Search Sheet based on condition matching Name, Surname, Date of Birth, Screening Day, and Event in both Sheets, into Master spreadsheet. I do not need entire row to be pulled into Master Sheet but only data starting from column BX to HH NOT entire row.

I have completed the code (please see bellow) that would do the job, but it is tremendously slow for vast amounts of data.
I would appreciate help of VBA Wizards here if they could help in creating a code that would do this job much faster, as this take too long.

Any suggestions, improvements, or critiques on my code are very welcome.

Many Thanks

VBA Code:
Option Explicit

Sub MergeData()
'We want to merge data from our ThisWorkbook(Search Sheet) with MasterDb(Master Sheet) based on multiple conditions
    
    
    Dim oThisWb As Workbook
    Dim oThisWs As Worksheet
    
    Dim oMasterWb As Workbook
    Dim oMasterWs As Worksheet
    
    
    Dim rT As Range 'whole Range in Search Wb
    Dim rThdr As Range 'Header Range in Search Wb
    Dim rM As Range 'whole Range in Search Wb
    Dim rMhdr As Range 'Header Range in Search Wb
    
    Dim lr As Long
    Dim lc As Long
    Dim lrT As Long
    Dim lcT As Long
    Dim iM As Long
    Dim iT As Long
    Dim lCounter As Long
    
    Dim sMasterDbFolderPath As String
    Dim sFirstName As String
    Dim sSurname As String
    Dim sPdetailsVenue As String
    Dim dDateOfScreening As Date
    Dim dPdetailsDOB As Date
    
    
    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    
    
    sMasterDbFolderPath = Environ("UserProfile") & "\Desktop\H\Master DatabaseFinal25112022.xlsx"
    If Dir(sMasterDbFolderPath) = vbNullString Then
        MsgBox Prompt:="Folder Path for Master Db does not exist!", Buttons:=vbCritical, Title:="Folder Does not exist!"
        Exit Sub
    End If
    
    Set oThisWb = ThisWorkbook
    Set oThisWs = oThisWb.Worksheets("HData")
    With oThisWs
        .Activate
        lrT = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
        lcT = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
        Set rThdr = .Range(Range("A1"), .Cells(1, lcT))
        Set rT = .Range("A1").Resize(lrT, lcT)
    End With
    
    On Error Resume Next
    Set oMasterWb = Workbooks.Open(sMasterDbFolderPath)
    On Error GoTo 0
    Set oMasterWs = oMasterWb.Worksheets("RevisedMasterDB")
    With oMasterWs
        lr = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
        lc = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
        Set rMhdr = .Range(Range("A1"), .Cells(1, lc))
        Set rM = .Range("A1").Resize(lr, lc)
    End With
    
    'first loop read name and surname and other conditions in H's Spreadsheet
    oThisWs.Activate
    For iT = 2 To lrT
            sFirstName = oThisWs.Range("F" & iT).Value
                sSurname = oThisWs.Range("G" & iT).Value
                    sPdetailsVenue = oThisWs.Range("C" & iT).Value
                        dDateOfScreening = oThisWs.Range("A" & iT).Value
                            dPdetailsDOB = oThisWs.Range("M" & iT).Value
                            
        'second loop to search for names, firstname and surname and other conditions in master Db and performe extraction
        oMasterWs.Activate
        For iM = 2 To lr
        On Error Resume Next
        If oMasterWs.Range("F" & iM).Value = sFirstName And oMasterWs.Range("G" & iM).Value = sSurname _
            And oMasterWs.Range("C" & iM).Value = sPdetailsVenue And oMasterWs.Range("A" & iM).Value = dDateOfScreening _
                And oMasterWs.Range("M" & iM).Value = dPdetailsDOB Then
        On Error GoTo 0
                oThisWs.Activate
                oThisWs.Range(Cells(iT, "BX"), Cells(iT, "HH")).Copy
                oMasterWs.Activate
                oMasterWs.Range(Cells(iM, "BX"), Cells(iM, "HH")).Select
                oMasterWs.Range(Cells(iM, "BX"), Cells(iM, "HH")).PasteSpecial Paste:=xlPasteValues
                oMasterWs.Range("O" & iM).Value = oThisWs.Range("O" & iT).Value
                oMasterWs.Range("P" & iM).Value = oThisWs.Range("P" & iT).Value
                oMasterWs.Range(Cells(iM, "BX"), Cells(iM, "HH")).Interior.Color = vbYellow
                
        End If
        Next iM
        Application.CutCopyMode = False
        lCounter = lCounter + 1
        Debug.Print lCounter
    Next iT
    oMasterWs.Activate
    oMasterWb.Save
    
    
    Application.DisplayAlerts = True
    Application.AskToUpdateLinks = True
    Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    
    
    Set rT = Nothing
    Set rThdr = Nothing
    Set rM = Nothing
    Set rMhdr = Nothing
    lr = 0
    lc = 0
    lrT = 0
    lcT = 0
    iM = 0
    iT = 0
    lCounter = 0
    sMasterDbFolderPath = vbNullString
    sFirstName = vbNullString
    sSurname = vbNullString
    sPdetailsVenue = vbNullString
    dDateOfScreening = 0
    dPdetailsDOB = 0
    
    End Sub
 

Excel Facts

Select a hidden cell
Somehide hide payroll data in column G? Press F5. Type G1. Enter. Look in formula bar while you arrow down through G.
My task is to pull all the data from the Search Sheet based on condition matching Name, Surname, Date of Birth, Screening Day, and Event in both Sheets, into Master spreadsheet. I do not need entire row to be pulled into Master Sheet but only data starting from column BX to HH NOT entire row.

Hi @Denin Srmic ,
Can these data from the "Search" sheet appear several times in the "Master" sheet or can they only exist once?

I have completed the code (please see bellow) that would do the job, but it is tremendously slow for vast amounts of data.
How long does it take to run?
 
Upvote 0
Hi @Denin Srmic ,
Can these data from the "Search" sheet appear several times in the "Master" sheet or can they only exist once?


How long does it take to run?
Hi DanteAmor,

To give answer to your first question, yes, they can appear several times in master spreadsheet, but not all of them.
My code took five hours without finishing the task and it still was running. I pressed couple times Ctrl+Break to see whether the code does what it supposed to do, and it did, but it was too slow. Counter was also Intergrated into a loop to see how far fast it gets with data transfer.

I tried matching data with an array, but I encountered a problem as to how to create the code for each single item of the array. Bellow is my attempt.
Many Thanks

VBA Code:
Sub MatchingDataWithArray()

    Dim oThisWb As Workbook
    Dim oThisWs As Worksheet
    
    Dim oMasterWb As Workbook
    Dim oMasterWs As Worksheet
    
    
    Dim rT As Range
    Dim rThdr As Range
    Dim rM As Range
    Dim rMhdr As Range
    
    Dim a As Variant 'master db
    Dim b As Variant 'h's db
    
    Dim lr As Long
    Dim lc As Long
    Dim lrT As Long
    Dim lcT As Long
    Dim iM As Long
    Dim iT As Long
    Dim jM As Long
    Dim jT As Long
    Dim lCounter As Long
    
    Dim sMasterDbFolderPath As String
    Dim sFirstName As String
    Dim sSurname As String
    Dim sPdetailsVenue As String
    Dim dDateOfScreening As Date
    Dim dPdetailsDOB As Date
    
    
    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    
    
    sMasterDbFolderPath = Environ("UserProfile") & "\Desktop\H\Master DatabaseFinal25112022.xlsx"
    If Dir(sMasterDbFolderPath) = vbNullString Then
        MsgBox Prompt:="Folder Path for Master Db does not exist!", Buttons:=vbCritical, Title:="Folder Does not exist!"
        Exit Sub
    End If
    
    Set oThisWb = ThisWorkbook
    Set oThisWs = oThisWb.Worksheets("Hdata")
    With oThisWs
        .Activate
        lrT = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
        lcT = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
        Set rThdr = .Range(Range("A1"), .Cells(1, lcT))
        Set rT = Range("A1").Resize(lrT, lcT)
    End With
    
    On Error Resume Next
    Set oMasterWb = Workbooks.Open(sMasterDbFolderPath)
    On Error GoTo 0
    Set oMasterWs = oMasterWb.Worksheets("RevisedMasterDB")
    With oMasterWs
        lr = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
        lc = .Cells.Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
        Set rMhdr = .Range(Range("A1"), .Cells(1, lc))
        Set rM = .Range("A1").Resize(lr, lc)
    End With
    
    'ReDim Preserve a(1 To lr, 1 To lc)
    'ReDim Preserve b(1 To lrT, 1 To lcT)
    ReDim Preserve a(1 To UBound(a, 1), UBound(a, 2))
    ReDim Preserve b(1 To UBound(b, 1), UBound(b, 2))
    
    'read in data into both arrays
    a = rM.Value
    b = rT.Value
'*******************************************************************************************************************************
    'first loop read name and surname in Harshils Spreadsheet
    For iT = 2 To UBound(b, 1) '2 to lr
            sFirstName = b(iT, 6)
                sSurname = b(iT, 7)
                    sPdetailsVenue = b(iT, 3)
                        dDateOfScreening = b(iT, 1)
                            dPdetailsDOB = b(iT, 13)
        For iM = 2 To UBound(a, 1)
            If a(iM, 6) = sFirstName And a(iM, 7) = sSurname And a(iM, 3) = sPdetailsVenue And a(iM, 1) = dDateOfScreening And a(iM, 13) = dPdetailsDOB Then
                a(iM, 76) = b(iT, 76) 'here i would have to do comparison for each single item in array 35000 times, which is not very efficient.
                
                
            
            
            









                    
            End If
        Next iM
                            
    Next iT
                    
      
        
        
        Application.CutCopyMode = False
        lCounter = lCounter + 1
        Debug.Print lCounter
    Next iT
    oMasterWs.Activate
    oMasterWb.Save
'**********************************************************************************************************************************
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Application.DisplayAlerts = True
    Application.AskToUpdateLinks = True
    Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    
    Stop
    Set rT = Nothing
    Set rThdr = Nothing
    Set rM = Nothing
    Set rMhdr = Nothing
    lr = 0
    lc = 0
    lrT = 0
    lcT = 0
    iM = 0
    iT = 0
    lCounter = 0
    sMasterDbFolderPath = vbNullString
    sFirstName = vbNullString
    sSurname = vbNullString
    sPdetailsVenue = vbNullString
    dDateOfScreening = 0
    dPdetailsDOB = 0
    
End Sub
 
Upvote 0
Try the following code. In a pair of tests with 240,000 records, the processing time is 5 minutes.
Put the macro in your workbook where you have the "HData" sheet.
First you must have the 2 books open. Set the book name "master" on this line:
Set wb2 = Workbooks("Master DatabaseFinal25112022")

Try the following code on a copy of your master book.
VBA Code:
Sub MergeData_with_array()
  Dim wb1 As Workbook, wb2 As Workbook
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim i As Long, j As Long, k As Long, lr1 As Long, lc As Long, lr2 As Long, w As Long
  Dim MasterFile As String, ky As String
  Dim a As Variant, b As Variant, nRows As Variant
  Dim rg As Range, rng As Range
  Dim dic As Object
  Dim t As Double
    
  Application.ScreenUpdating = False
  t = Timer
  Set dic = CreateObject("Scripting.Dictionary")
  
  'Search sheet
  Set wb1 = ThisWorkbook
  Set sh1 = wb1.Worksheets("HData")
  lr1 = sh1.Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row
  lc = sh1.Cells.Find("*", , xlValues, xlPart, xlByColumns, xlPrevious, False).Column
  a = sh1.Range("A2", sh1.Cells(lr1, lc)).Value2
    
  'Master sheet
'  MasterFile = Environ("UserProfile") & "\Desktop\H\Master DatabaseFinal25112022.xlsx"
'  If Dir(MasterFile) = vbNullString Then
'    MsgBox "Folder Path for Master Db does not exist!", vbCritical, "Folder Does not exist!"
'    Exit Sub
'  End If
'  Set wb2 = Workbooks.Open(MasterFile)
  Set wb2 = Workbooks("Master DatabaseFinal25112022")
  Set sh2 = wb2.Worksheets("RevisedMasterDB")
  lr2 = sh2.Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row
  b = sh2.Range("A2", sh2.Cells(lr2, lc)).Value2

  'read matrix 'b' Master sheet. key columns: F, G, C, A, M
  For i = 1 To UBound(b, 1)
    ky = b(i, 6) & "|" & b(i, 7) & "|" & b(i, 3) & "|" & b(i, 1) & "|" & b(i, 13)
    dic(ky) = dic(ky) & "|" & i
  Next
  
  'read matrix 'a' Search sheet
  Set rng = sh2.Range("BX" & lr2 + 1).Resize(1, 141)
  For i = 1 To UBound(a, 1)
    ky = a(i, 6) & "|" & a(i, 7) & "|" & a(i, 3) & "|" & a(i, 1) & "|" & a(i, 13)
    If dic.exists(ky) Then
      nRows = Split(dic(ky), "|")
      For k = 1 To UBound(nRows)
        w = nRows(k)
        For j = Columns("O").Column To Columns("P").Column
          b(w, j) = a(i, j)
        Next
        For j = Columns("BX").Column To Columns("HH").Column
          b(w, j) = a(i, j)
        Next
        Set rng = Union(rng, sh2.Range("BX" & w + 1).Resize(1, 141))
      Next
    End If
  Next
  
  If w > 0 Then
    sh2.Range("A2").Resize(UBound(b, 1), UBound(b, 2)).Value = b
    rng.Interior.Color = vbYellow
    sh2.Range("BX" & lr2 + 1).Resize(1, 141).Interior.Color = xlNone
  End If
  wb1.Activate
  Application.ScreenUpdating = True
  MsgBox "Time : " & Timer - t & " sec"
End Sub
 
Upvote 0
Try the following code. In a pair of tests with 240,000 records, the processing time is 5 minutes.
Put the macro in your workbook where you have the "HData" sheet.
First you must have the 2 books open. Set the book name "master" on this line:
Set wb2 = Workbooks("Master DatabaseFinal25112022")

Try the following code on a copy of your master book.
VBA Code:
Sub MergeData_with_array()
  Dim wb1 As Workbook, wb2 As Workbook
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim i As Long, j As Long, k As Long, lr1 As Long, lc As Long, lr2 As Long, w As Long
  Dim MasterFile As String, ky As String
  Dim a As Variant, b As Variant, nRows As Variant
  Dim rg As Range, rng As Range
  Dim dic As Object
  Dim t As Double
   
  Application.ScreenUpdating = False
  t = Timer
  Set dic = CreateObject("Scripting.Dictionary")
 
  'Search sheet
  Set wb1 = ThisWorkbook
  Set sh1 = wb1.Worksheets("HData")
  lr1 = sh1.Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row
  lc = sh1.Cells.Find("*", , xlValues, xlPart, xlByColumns, xlPrevious, False).Column
  a = sh1.Range("A2", sh1.Cells(lr1, lc)).Value2
   
  'Master sheet
'  MasterFile = Environ("UserProfile") & "\Desktop\H\Master DatabaseFinal25112022.xlsx"
'  If Dir(MasterFile) = vbNullString Then
'    MsgBox "Folder Path for Master Db does not exist!", vbCritical, "Folder Does not exist!"
'    Exit Sub
'  End If
'  Set wb2 = Workbooks.Open(MasterFile)
  Set wb2 = Workbooks("Master DatabaseFinal25112022")
  Set sh2 = wb2.Worksheets("RevisedMasterDB")
  lr2 = sh2.Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row
  b = sh2.Range("A2", sh2.Cells(lr2, lc)).Value2

  'read matrix 'b' Master sheet. key columns: F, G, C, A, M
  For i = 1 To UBound(b, 1)
    ky = b(i, 6) & "|" & b(i, 7) & "|" & b(i, 3) & "|" & b(i, 1) & "|" & b(i, 13)
    dic(ky) = dic(ky) & "|" & i
  Next
 
  'read matrix 'a' Search sheet
  Set rng = sh2.Range("BX" & lr2 + 1).Resize(1, 141)
  For i = 1 To UBound(a, 1)
    ky = a(i, 6) & "|" & a(i, 7) & "|" & a(i, 3) & "|" & a(i, 1) & "|" & a(i, 13)
    If dic.exists(ky) Then
      nRows = Split(dic(ky), "|")
      For k = 1 To UBound(nRows)
        w = nRows(k)
        For j = Columns("O").Column To Columns("P").Column
          b(w, j) = a(i, j)
        Next
        For j = Columns("BX").Column To Columns("HH").Column
          b(w, j) = a(i, j)
        Next
        Set rng = Union(rng, sh2.Range("BX" & w + 1).Resize(1, 141))
      Next
    End If
  Next
 
  If w > 0 Then
    sh2.Range("A2").Resize(UBound(b, 1), UBound(b, 2)).Value = b
    rng.Interior.Color = vbYellow
    sh2.Range("BX" & lr2 + 1).Resize(1, 141).Interior.Color = xlNone
  End If
  wb1.Activate
  Application.ScreenUpdating = True
  MsgBox "Time : " & Timer - t & " sec"
End Sub
Hi DanteAmor,

Thank you for masterpiece of VBA code of yours. I have applied it to both sheets but unfortunately no data was transferred, not even for single row. What could have gone wrong?

Many Thanks
 
Upvote 0
Run a test with few records.
Remember that the key is the columns F, G, C, A, M. These data must match in the 2 files.

If you have problems, please share your 2 files on google drive, for me to review.
If the workbook contains confidential information, you could replace it with generic data.
 
Upvote 0
Try the following code. In a pair of tests with 240,000 records, the processing time is 5 minutes.
Put the macro in your workbook where you have the "HData" sheet.
First you must have the 2 books open. Set the book name "master" on this line:
Set wb2 = Workbooks("Master DatabaseFinal25112022")

Try the following code on a copy of your master book.
VBA Code:
Sub MergeData_with_array()
  Dim wb1 As Workbook, wb2 As Workbook
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim i As Long, j As Long, k As Long, lr1 As Long, lc As Long, lr2 As Long, w As Long
  Dim MasterFile As String, ky As String
  Dim a As Variant, b As Variant, nRows As Variant
  Dim rg As Range, rng As Range
  Dim dic As Object
  Dim t As Double
   
  Application.ScreenUpdating = False
  t = Timer
  Set dic = CreateObject("Scripting.Dictionary")
 
  'Search sheet
  Set wb1 = ThisWorkbook
  Set sh1 = wb1.Worksheets("HData")
  lr1 = sh1.Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row
  lc = sh1.Cells.Find("*", , xlValues, xlPart, xlByColumns, xlPrevious, False).Column
  a = sh1.Range("A2", sh1.Cells(lr1, lc)).Value2
   
  'Master sheet
'  MasterFile = Environ("UserProfile") & "\Desktop\H\Master DatabaseFinal25112022.xlsx"
'  If Dir(MasterFile) = vbNullString Then
'    MsgBox "Folder Path for Master Db does not exist!", vbCritical, "Folder Does not exist!"
'    Exit Sub
'  End If
'  Set wb2 = Workbooks.Open(MasterFile)
  Set wb2 = Workbooks("Master DatabaseFinal25112022")
  Set sh2 = wb2.Worksheets("RevisedMasterDB")
  lr2 = sh2.Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row
  b = sh2.Range("A2", sh2.Cells(lr2, lc)).Value2

  'read matrix 'b' Master sheet. key columns: F, G, C, A, M
  For i = 1 To UBound(b, 1)
    ky = b(i, 6) & "|" & b(i, 7) & "|" & b(i, 3) & "|" & b(i, 1) & "|" & b(i, 13)
    dic(ky) = dic(ky) & "|" & i
  Next
 
  'read matrix 'a' Search sheet
  Set rng = sh2.Range("BX" & lr2 + 1).Resize(1, 141)
  For i = 1 To UBound(a, 1)
    ky = a(i, 6) & "|" & a(i, 7) & "|" & a(i, 3) & "|" & a(i, 1) & "|" & a(i, 13)
    If dic.exists(ky) Then
      nRows = Split(dic(ky), "|")
      For k = 1 To UBound(nRows)
        w = nRows(k)
        For j = Columns("O").Column To Columns("P").Column
          b(w, j) = a(i, j)
        Next
        For j = Columns("BX").Column To Columns("HH").Column
          b(w, j) = a(i, j)
        Next
        Set rng = Union(rng, sh2.Range("BX" & w + 1).Resize(1, 141))
      Next
    End If
  Next
 
  If w > 0 Then
    sh2.Range("A2").Resize(UBound(b, 1), UBound(b, 2)).Value = b
    rng.Interior.Color = vbYellow
    sh2.Range("BX" & lr2 + 1).Resize(1, 141).Interior.Color = xlNone
  End If
  wb1.Activate
  Application.ScreenUpdating = True
  MsgBox "Time : " & Timer - t & " sec"
End Sub
In addition to my previous reply,

this line of code is highlighted

'sh2.Range("A2").Resize(UBound(b, 1), UBound(b, 2)).Value = b'

and it says Runtime error 7, Out of Memory.
 
Upvote 0
Run a test with few records.
Remember that the key is the columns F, G, C, A, M. These data must match in the 2 files.

If you have problems, please share your 2 files on google drive, for me to review.
If the workbook contains confidential information, you could replace it with generic data.
Hi DanteAmor,

Ok, I will give it try, and let you know.

Columns A and C might be at some rows empty that is to say, contain empty cells within those two columns. Maybe that could be the culprit.

I will give it a try when I go tomorrow back to work.

Thank you for your effort, your knowledge of VBA is amazing.
 
Upvote 0

Forum statistics

Threads
1,223,894
Messages
6,175,254
Members
452,624
Latest member
gregg777

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top