Есть много ячеек, в каждой ячейке текст (две строчки), например
Текст 1 Текст 2
параметры шрифта для обоих текстов (Calibri, размер 11)
нужно написать макрос который будет менять параметры шрифта в выбранных ячейках нужно Текст 1 уменьшить размер с 11 уменьшить до 9 а Текст 2 увеличить размер с 11 до 13 и сделать текст полужирным. Текст 1 Текст 2
Хотелось бы чтобы макрос работал для всех выделенных ячеек... Спасибо...[
исходные данные в столбце E... можно редактировать прямо там (но там внутри формула)... или скопировать в соседний столбец F (отредактированный текст из E)... как проще так и сделайте...
Sub Alemox()
Dim a As Integer
Dim Ячейка As Range
For Each Ячейка In Selection.Cells
For a = 1 To Len(Ячейка.Text) Step 1
If Mid(Ячейка.Text, a, 1) = Chr(10) Then
Ячейка.Characters(Start:=1, Length:=a).Font.Size = 10
With Ячейка.Characters(Start:=a + 1, Length:=Len(Ячейка.Text) - a).Font
.Size = 14
.Bold = True
End With
Exit For
End If
Next a
Next Ячейка
End Sub
Но данное изменение не применимо для формул
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
еще вариант (копирует выделенное в соседний столбец справа и там обрабатывает)
Код
Sub vvv()
Application.ScreenUpdating = False
Selection.Copy
Selection.Offset(, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
For Each t In Selection
n = InStr(t, Chr(10))
With t.Characters(Start:=1, Length:=n).Font
.FontStyle = "обычный"
.Size = 9
End With
With t.Characters(Start:=n + 1, Length:=99).Font
.FontStyle = "полужирный"
.Size = 13
End With
Next
Application.ScreenUpdating = True
End Sub
Sub www()
Dim c As Range, a
With Selection
a = .Value: .NumberFormat = "@": .Value = a
.Font.Size = 10:
For Each c In .Cells
c.Characters(InStr(1, c, Chr(10)) + 1).Font.Size = 14
c.Characters(InStr(1, c, Chr(10)) + 1).Font.Bold = True
Next
End With
End Sub