Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Объединение ячеек с сохранением форматирования исходных ячее - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединение ячеек с сохранением форматирования исходных ячее (Макросы/Sub)
Объединение ячеек с сохранением форматирования исходных ячее
Exabyte Дата: Суббота, 20.06.2015, 01:11 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
После поиска на форуме похожих тем не смог найти подходящей.
Мне нужно объединить ячейки без потери форматирования.
Сейчас, при простой конкатенации правая объединенная ячейка принимает формат формат первой объединяемой
В 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
[/vba]

Спасибо за помощь

Автор - Exabyte
Дата добавления - 20.06.2015 в 01:11
KSV Дата: Суббота, 20.06.2015, 03:38 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
так?
К сообщению приложен файл: 9362099.xlsm (19.1 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениетак?

Автор - KSV
Дата добавления - 20.06.2015 в 03:38
Exabyte Дата: Суббота, 20.06.2015, 12:45 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Да. Работает так, как нужно.
Спасибо вам большое
 
Ответить
СообщениеДа. Работает так, как нужно.
Спасибо вам большое

Автор - Exabyte
Дата добавления - 20.06.2015 в 12:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединение ячеек с сохранением форматирования исходных ячее (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!