Как найти значения ячеек с жирным шрифтом?

Нужно выбрать значения ячеек для копирования на другой лист документа, привязавшись к ячейке с жирным шрифтом. На одном сайте нашел такую формулу: =ЕЖИРНЫЙ(А2), но у меня в excel нет такой формулы. Как можно сделать?

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Михаил Болеев

Нужно написать функцию для формулы на VBA.

Function ЕЖИРНЫЙ(ЯЧЕЙКА As Range) As Boolean
  ЕЖИРНЫЙ = ЯЧЕЙКА.Font.Bold
End Function

И можно использовать: =ЕЖИРНЫЙ(А2)

→ Ссылка
Автор решения: vikttur

Набросок.

Sub test_()
    Dim aData(), rRng As Range
    Dim i As Long, k As Long
    
    With ActiveSheet ' лист с исходными данными'
        i = .Cells(.Rows.Count, 1).End(xlUp).Row ' последняя строка с данными'
        Set rRng = .Range("A1:A" & i).Value ' диапазон в переменную, для отслеживания форматирования'
    End With
    
    aData = rRng.Value ' для ускорения чтения данные заносим в массив'
    ReDim aRes(1 To i, 1 To 6) ' 6 - количество столбцов (количество нужных данных из одного блока данных)'
    
    For i = 2 To UBound(aData)
        If rRng(i, 1).Font.Bold = True Then
            k = k + 1 ' номер записи в массиве выгрузки'
            aRes(k, 1) = aData(i, 1)
            ' здесь получить другие данные блока'
        End If
    Next i
    
    ' Worksheets("2") ' лист для выгрузки результата'
    Worksheets("2").Range("A2").Resize(UBound(aRes), UBound(aRes, 2)).Value = aRes
    Set rRng = Nothing
End Sub

Т.к. "другие поля (телефон, часы работы и сайт) есть не у всех данных", то для получения других данных из блока нужно отслеживать наполнение блока.

Если нужно получить только жирные заголовки блоков, то массив выгрузки можно ограничить одним столбцом.

→ Ссылка