Здравствуйте! После поиска на форуме похожих тем не смог найти подходящей. Мне нужно объединить ячейки без потери форматирования. Сейчас, при простой конкатенации правая объединенная ячейка принимает формат формат первой объединяемой В C4, например, шрифт Calibri и размера 10 пт. В D4 - Шрифт Arial, синего цвета и размера 24 пт В E4 нужно поместить C4+D4 с сохранением формата Есть код, который позволяет это сделать, но только для фиксированного range. У меня таких строк более сотни и переписывать код под каждую пару ячеек невыносимо скучно Я понимаю, что нужно завернуть этот код в цикл (или указать коде точные регионы - как C4-C104), но у меня не хватает знаний на это [vba]
Код
Sub concatenatecode() Dim Val1 As String, Val2 As String Dim Fname1 As String, Fname2 As String Dim Fsize1 As Long, Fsize2 As Long Dim Lng1 As Long, Lng2 As Long With Range("C4") Val1 = .Value Fname1 = .Font.Name Fsize1 = .Font.Size Lng1 = Len(.Value) Fstyle1 = .Font.FontStyle End With With Range("D4") Val2 = .Value Fname2 = .Font.Name Fsize2 = .Font.Size Lng2 = Len(.Value) End With With Range("E4") .Value = Val1 & Val2 .Characters(1, Lng1).Font.Name = Fname1 .Characters(1, Lng1).Font.Size = Fsize1 .Characters(1, Lng1).Font.FontStyle = Fstyle1 .Characters(Lng1 + 1, Lng2).Font.Name = Fname2 .Characters(Lng1 + 1, Lng2).Font.Size = Fsize2 End With End Sub
[/vba]
Спасибо за помощь
Здравствуйте! После поиска на форуме похожих тем не смог найти подходящей. Мне нужно объединить ячейки без потери форматирования. Сейчас, при простой конкатенации правая объединенная ячейка принимает формат формат первой объединяемой В C4, например, шрифт Calibri и размера 10 пт. В D4 - Шрифт Arial, синего цвета и размера 24 пт В E4 нужно поместить C4+D4 с сохранением формата Есть код, который позволяет это сделать, но только для фиксированного range. У меня таких строк более сотни и переписывать код под каждую пару ячеек невыносимо скучно Я понимаю, что нужно завернуть этот код в цикл (или указать коде точные регионы - как C4-C104), но у меня не хватает знаний на это [vba]
Код
Sub concatenatecode() Dim Val1 As String, Val2 As String Dim Fname1 As String, Fname2 As String Dim Fsize1 As Long, Fsize2 As Long Dim Lng1 As Long, Lng2 As Long With Range("C4") Val1 = .Value Fname1 = .Font.Name Fsize1 = .Font.Size Lng1 = Len(.Value) Fstyle1 = .Font.FontStyle End With With Range("D4") Val2 = .Value Fname2 = .Font.Name Fsize2 = .Font.Size Lng2 = Len(.Value) End With With Range("E4") .Value = Val1 & Val2 .Characters(1, Lng1).Font.Name = Fname1 .Characters(1, Lng1).Font.Size = Fsize1 .Characters(1, Lng1).Font.FontStyle = Fstyle1 .Characters(Lng1 + 1, Lng2).Font.Name = Fname2 .Characters(Lng1 + 1, Lng2).Font.Size = Fsize2 End With End Sub