Поиск столбцов в ОСВ через rgx

;
 
Sub ПоискКолонокОСВ()
 
    For Each r In Range("A1:D20")
        If Not IsNull(rgxExtract2(r.Value, "\Контрагенты|Субконто")) And Len(r.Value) <= Len("Контрагенты") Then
            res = r.Value
            resRow = r.row
            resColumn = r.column
            Exit For
        End If
    Next r
 
ДебетН = GetColumn3("\Сальдо на начало периода", "Дебет")
КредитН = GetColumn3("\Сальдо на начало периода", "Кредит")
ДебетО = GetColumn3("\Обороты за период|Оборот за период", "Дебет")
КредитО = GetColumn3("\Обороты за период|Оборот за период", "Кредит")
ДебетК = GetColumn3("\Сальдо на конец периода", "Дебет")
КредитК = GetColumn3("\Сальдо на конец периода", "Кредит")
End Sub
Function GetColumn3(pattern As String, ДК_Н As String) As Variant
    For Each r In Range("A1:X20")
        If Not IsNull(rgxExtract2(r.Value, pattern)) Then
'            r.Select
            Merge = r.MergeArea.Address
                If Len(Merge) > 8 Then
                    Column_1 = Split(Merge, "$")(1)
                    Column_2 = Split(Merge, "$")(3)
                Else
'                    MsgBox "Не удалось найти начальное сальдо! =("
                    Exit Function
                End If
            Exit For
        End If
    Next r
 
    resRow = 10
    For Each r In Range(Column_1 & resRow & ":" & Column_2 & "20")
        If Not IsNull(rgxExtract2(r.Value, "\Дебет")) Then
            ДебетН = Split(r.Address, "$")(1)
        End If
 
        If Not IsNull(rgxExtract2(r.Value, "\Кредит")) Then
            КредитН = Split(r.Address, "$")(1)
        End If
    Next r
 
 
    If ДК_Н = "Дебет" Then
        GetColumn3 = ДебетН
        Exit Function
    End If
 
    If ДК_Н = "Кредит" Then
        GetColumn3 = КредитН
        Exit Function
    End If
 
End Function