Я медленно поправляю и расширяю выражение If ... ElseIf ... Else ( см. Сообщение ), чтобы помочь мне отформатировать длинный список категорий и подкатегорий (спасибо marg & Lunatik) .
Я назначил фиксированную высоту строки для 90% диапазона / линий. Теперь я застрял в тех ячейках с большим количеством текста, заключенным в две строки в ячейке. Две строки текста не вписываются в мою стандартную высоту 10,5.
Я не могу просто обновить экран, так как оператор говорит, что любая строка, которая не является исключением первого (жирный шрифт) или исключением второго (верхний индекс) , должна быть 10,5 пункта Мне нужно третье исключение .
В настоящее время у меня есть:
Sub setHeights()
Dim targetRange As Range
Dim targetCell As Range
Cells.Select
Selection.WrapText = True
Cells.EntireRow.AutoFit
Set targetRange = Range("B:B")
For Each targetCell In targetRange
If Not IsEmpty(targetCell) Then
If targetCell.Font.Bold Then
targetCell.RowHeight = 15
ElseIf targetCell.Characters(Len(targetCell), 1).Font.superscript Then
targetCell.RowHeight = 14
Else: targetCell.RowHeight = 10.5
End If
End If
Next targetCell
End Sub
Могу ли я:
- Найти эти targetCells с более чем 60 символами (ширина фиксированного столбца)
- Применить .WrapText к этим конкретным целевым ячейкам
- Автоэкспандировать ТОЛЬКО те targetCells (поэтому не перезаписывают мои стандартные строки 10.5pt для других целевых ячеек без исключения).
Будет ли это работать? Нужно ли его помещать в отдельную подпрограмму из-за параметров первой? На что это похоже? (см. мое смущающее усилие ниже)
ElseIf targetCell.Characters(Len(TargetCell+60).TargetCell.WrapText Then
targetCell.Autofit