Как найти значения ячеек с жирным шрифтом?
Нужно выбрать значения ячеек для копирования на другой лист документа, привязавшись к ячейке с жирным шрифтом. На одном сайте нашел такую формулу: =ЕЖИРНЫЙ(А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
Т.к. "другие поля (телефон, часы работы и сайт) есть не у всех данных", то для получения других данных из блока нужно отслеживать наполнение блока.
Если нужно получить только жирные заголовки блоков, то массив выгрузки можно ограничить одним столбцом.
