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
    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
        arrCorrectheaderRange = CorrectheaderRange
        arrInputHeaderRange = InputHeaderRange
        If CorrectheaderRange.Columns.Count > 1 Then
            arrCorrectheaderRange = Application.Transpose(Application.Transpose(arrCorrectheaderRange))
            arrCorrectheaderRange = Application.Transpose(arrCorrectheaderRange)
        End If
        If InputHeaderRange.Columns.Count > 1 Then
            arrInputHeaderRange = Application.Transpose(Application.Transpose(arrInputHeaderRange))
            arrInputHeaderRange = Application.Transpose(arrInputHeaderRange)
        End If
        EE_HeadersCorrect = (Join(arrInputHeaderRange, ",") = Join(arrCorrectheaderRange, ","))
        Erase arrCorrectheaderRange
        Erase arrInputHeaderRange
    End If
End Function