XLA routines: EE_HeadersCorrect

Nick's picture
Often others deliver files to an application that need to have fixed col headers. Unfortunately, they often change them without telling you. This function checks that the headers are as expected before you proceed.
Function EE_HeadersCorrect(CorrectheaderRange As range, InputHeaderRange As range) As Boolean
'- checks that the headers are the same in a source file vs what's expected..
'- ranges can be passed in as columns or rows
'- functionally, it's just a simple For Each comparison
    Dim arrCorrectheaderRange   As Variant
    Dim arrInputHeaderRange     As Variant
'http://excelexperts.com/xla-routines-eeHeadersCorrect
        
    If CorrectheaderRange.Cells.Count = 1 And InputHeaderRange.Cells.Count = 1 Then
        EE_HeadersCorrect = (CorrectheaderRange.value = InputHeaderRange.value)
    ElseIf CorrectheaderRange.Cells.Count <> InputHeaderRange.Cells.Count Then
        EE_HeadersCorrect = False
    Else
        arrCorrectheaderRange = CorrectheaderRange
        arrInputHeaderRange = InputHeaderRange
 
        If CorrectheaderRange.Columns.Count > 1 Then
            arrCorrectheaderRange = Application.Transpose(Application.Transpose(arrCorrectheaderRange))
        Else
            arrCorrectheaderRange = Application.Transpose(arrCorrectheaderRange)
        End If
 
        If InputHeaderRange.Columns.Count > 1 Then
            arrInputHeaderRange = Application.Transpose(Application.Transpose(arrInputHeaderRange))
        Else
            arrInputHeaderRange = Application.Transpose(arrInputHeaderRange)
        End If
 
        EE_HeadersCorrect = (Join(arrInputHeaderRange, ",") = Join(arrCorrectheaderRange, ","))
 
        Erase arrCorrectheaderRange
        Erase arrInputHeaderRange
    End If
End Function