MS Excel VBA, чтобы найти диапазон, отформатированный с горизонтальным выравниванием по центру выделения

У меня есть электронная таблица Excel с текстом «Здравствуйте, это длинная строка текста» в ячейке A1. Я выбрал ячейки A1:G1.

Я знаю, что если я использую строку Selection.HorizontalAlignment = xlCenterAcrossSelection в макросе, она отформатирует выбранные ячейки, используя опцию горизонтального выравнивания текста «По центру выделения».

Как я могу написать функцию, которая будет выполнять обратную операцию, то есть, учитывая ячейку A1, возвращать диапазон A1:G1?


person Jason Schaeffer    schedule 15.07.2017    source источник
comment
Из вашего вопроса неясно, каковы критерии возврата A1: G1 с учетом A1? Непрерывный блок ячеек с центральным форматированием? Без пробелов и шириной всего в один столбец?   -  person Tim Williams    schedule 15.07.2017


Ответы (1)


Вот начало:

Public Function CAS(r As Range) As String
    Dim i As Long, rng As Range
    CAS = ""

    If r.HorizontalAlignment H<> 7 Then Exit Function
    Set rng = r

    For i = 1 To Columns.Count
        If r.Offset(0, i).HorizontalAlignment <> 7 Then
            CAS = rng.Address(0, 0)
            Exit Function
        Else
            Set rng = Union(rng, r.Offset(0, i))
        End If
    Next i
End Function

Предполагается, что 7 является правильным перечислением для HorizontalAlignment.

person Gary's Student    schedule 15.07.2017