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

Вход

Регистрация

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

 

= Мир MS Excel/Форматирование таблицы с объединенными ячейками - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Форматирование таблицы с объединенными ячейками
Predator_7 Дата: Четверг, 24.04.2014, 08:51 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый день!
Казалось бы, элементарная задача: Отформатировать столбцы таблицы (выравнивание, перенос текста и.т.д.) определенным образом.
Все бы ничего, но в таблице присутствуют объединенные ячейки. В таблице присутствуют и текстовые данные и числовые. Таблица большая,
прикладываю кусок. В объединенных ячейках - только текст. При форматировании вручную с выделением столбцов все ОК, но макросом сделать у меня не получается.
Т.к. применяется форматирование к столбцу (выравнивание по горизонтали посередине) , например С, а он есть и в области объединенных ячеек, то и текст в А В и.т.д. тоже выравнивается посередине. Можно сделать так: Не изменять формат в объединенных ячейках, оставить, как есть или выровнять по левому краю.
Необходимо:
Столбец A- выравнивание по гориз. по левому краю
Столбец B- выравнивание по гориз. по левому краю
Столбец C- выравнивание по гориз по середине
Столбец D- выравнивание по гориз. по правому краю
Столбец E- выравнивание по гориз. по правому краю

По вертикали- по середине всю таблицу
Перенос текста- везде
Авто-высота строк- везде
Числовое значение в столбце D - умножалось на коэффициент в ячейке G1

Спасибо всем откликнувшимся!
К сообщению приложен файл: 6909372.xlsx (9.6 Kb)
 
Ответить
СообщениеДобрый день!
Казалось бы, элементарная задача: Отформатировать столбцы таблицы (выравнивание, перенос текста и.т.д.) определенным образом.
Все бы ничего, но в таблице присутствуют объединенные ячейки. В таблице присутствуют и текстовые данные и числовые. Таблица большая,
прикладываю кусок. В объединенных ячейках - только текст. При форматировании вручную с выделением столбцов все ОК, но макросом сделать у меня не получается.
Т.к. применяется форматирование к столбцу (выравнивание по горизонтали посередине) , например С, а он есть и в области объединенных ячеек, то и текст в А В и.т.д. тоже выравнивается посередине. Можно сделать так: Не изменять формат в объединенных ячейках, оставить, как есть или выровнять по левому краю.
Необходимо:
Столбец A- выравнивание по гориз. по левому краю
Столбец B- выравнивание по гориз. по левому краю
Столбец C- выравнивание по гориз по середине
Столбец D- выравнивание по гориз. по правому краю
Столбец E- выравнивание по гориз. по правому краю

По вертикали- по середине всю таблицу
Перенос текста- везде
Авто-высота строк- везде
Числовое значение в столбце D - умножалось на коэффициент в ячейке G1

Спасибо всем откликнувшимся!

Автор - Predator_7
Дата добавления - 24.04.2014 в 08:51
igrtsk Дата: Четверг, 24.04.2014, 09:36 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 321
Репутация: 52 ±
Замечаний: 0% ±

Excel 2016
Вас спасет только отказ от объединения ячеек.
В Вашем случае сделать это скорее всего совсем не сложно, при том, что визуально все будет выглядеть так, как будто ячейки объединены.


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
СообщениеВас спасет только отказ от объединения ячеек.
В Вашем случае сделать это скорее всего совсем не сложно, при том, что визуально все будет выглядеть так, как будто ячейки объединены.

Автор - igrtsk
Дата добавления - 24.04.2014 в 09:36
Predator_7 Дата: Четверг, 24.04.2014, 09:47 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Вас спасет только отказ от объединения ячеек.

Да, я пробовал применять UnMerge ко всему документу, но текст в них съезжает влево и обязательно, чтобы где есть цифры 1,2,3 и.т.д. в столбце А, необходимо оставить объединение в этой строке B, C, D, E или отменить в этих строках перенос текста.
 
Ответить
Сообщение
Вас спасет только отказ от объединения ячеек.

Да, я пробовал применять UnMerge ко всему документу, но текст в них съезжает влево и обязательно, чтобы где есть цифры 1,2,3 и.т.д. в столбце А, необходимо оставить объединение в этой строке B, C, D, E или отменить в этих строках перенос текста.

Автор - Predator_7
Дата добавления - 24.04.2014 в 09:47
Gustav Дата: Четверг, 24.04.2014, 10:38 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Я стараюсь избегать объединения вообще, используя вместо него: Формат ячеек \ Выравнивание \ По горизонтали \ По центру выделения. Визуально смотрится абсолютно одинаково.

Записанный макрорекордером алгоритм борьбы с вашей проблемой примерно такой:

[vba]
Код
    Range("B1:E1").Select
     Selection.UnMerge
     With Selection
         .HorizontalAlignment = xlCenterAcrossSelection
         .VerticalAlignment = xlTop
         .WrapText = True
         .Orientation = 0
         .AddIndent = False
         .IndentLevel = 0
         .ShrinkToFit = False
         .ReadingOrder = xlContext
         .MergeCells = False
     End With
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеЯ стараюсь избегать объединения вообще, используя вместо него: Формат ячеек \ Выравнивание \ По горизонтали \ По центру выделения. Визуально смотрится абсолютно одинаково.

Записанный макрорекордером алгоритм борьбы с вашей проблемой примерно такой:

[vba]
Код
    Range("B1:E1").Select
     Selection.UnMerge
     With Selection
         .HorizontalAlignment = xlCenterAcrossSelection
         .VerticalAlignment = xlTop
         .WrapText = True
         .Orientation = 0
         .AddIndent = False
         .IndentLevel = 0
         .ShrinkToFit = False
         .ReadingOrder = xlContext
         .MergeCells = False
     End With
[/vba]

Автор - Gustav
Дата добавления - 24.04.2014 в 10:38
Predator_7 Дата: Четверг, 24.04.2014, 10:54 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Спасибо, но дело в том, что из pdf получается лист именно в таком виде.
Применив макрос ко всему листу мы получаем везде выравнивание по середине, а это не нужно.
Это можно применить только где есть значения в столбце А (1,2,3,......20), а это нефиксированные строки, их порядок и расположение меняется. Можно как-то искать значения 1,2,3,..... в столбце А, и если находится, то рядом в этой строчке (справа) объединять заново ячейки от В до Е ? А если нет 1,2,3,....., то пропускать?

Может это будет выход? Как выглядит при этом макрос?

Спасибо!
 
Ответить
СообщениеСпасибо, но дело в том, что из pdf получается лист именно в таком виде.
Применив макрос ко всему листу мы получаем везде выравнивание по середине, а это не нужно.
Это можно применить только где есть значения в столбце А (1,2,3,......20), а это нефиксированные строки, их порядок и расположение меняется. Можно как-то искать значения 1,2,3,..... в столбце А, и если находится, то рядом в этой строчке (справа) объединять заново ячейки от В до Е ? А если нет 1,2,3,....., то пропускать?

Может это будет выход? Как выглядит при этом макрос?

Спасибо!

Автор - Predator_7
Дата добавления - 24.04.2014 в 10:54
Gustav Дата: Четверг, 24.04.2014, 11:18 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Вот эта тема, мне кажется, должна помочь: Перебрать сгруппированные ячейки и разгруппировать их


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеВот эта тема, мне кажется, должна помочь: Перебрать сгруппированные ячейки и разгруппировать их

Автор - Gustav
Дата добавления - 24.04.2014 в 11:18
Predator_7 Дата: Пятница, 25.04.2014, 12:22 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Еще вопрос. Где ошибка?
Пробую все таки найти значение "xxxxx"в столбце А и просто объединить ячейки стоящие справа от этого значения:

[vba]
Код
Dim f As Range
intCountRow = ActiveSheet.UsedRange.Rows.Count
With ActiveSheet.Range("A5:A" & CStr(intCountRow))
Set f = .Find("xxxxx", LookIn:=xlValues)
If Not f Is Nothing Then
firstAddress = f.Address
Do
Range(f.Address).Select
Cells(f, 1) = Cells(f, 1) & Cells(f, 2) & Cells(f, 3) & Cells(f, 4)
Range(Cells(f, 2), Cells(f, 4)).ClearContents
Range(Cells(f, 1), Cells(f, 4)).Merge

Set f = .FindNext(f)
Loop While Not f Is Nothing And f.Address <> firstAddress
End If
[/vba]

[moder]Оформляйте коды тегами. Накажу!


Сообщение отредактировал Serge_007 - Пятница, 25.04.2014, 21:24
 
Ответить
СообщениеЕще вопрос. Где ошибка?
Пробую все таки найти значение "xxxxx"в столбце А и просто объединить ячейки стоящие справа от этого значения:

[vba]
Код
Dim f As Range
intCountRow = ActiveSheet.UsedRange.Rows.Count
With ActiveSheet.Range("A5:A" & CStr(intCountRow))
Set f = .Find("xxxxx", LookIn:=xlValues)
If Not f Is Nothing Then
firstAddress = f.Address
Do
Range(f.Address).Select
Cells(f, 1) = Cells(f, 1) & Cells(f, 2) & Cells(f, 3) & Cells(f, 4)
Range(Cells(f, 2), Cells(f, 4)).ClearContents
Range(Cells(f, 1), Cells(f, 4)).Merge

Set f = .FindNext(f)
Loop While Not f Is Nothing And f.Address <> firstAddress
End If
[/vba]

[moder]Оформляйте коды тегами. Накажу!

Автор - Predator_7
Дата добавления - 25.04.2014 в 12:22
RAN Дата: Пятница, 25.04.2014, 12:55 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вероятно здесь
[vba]
Код
Set f = .Find("xxxxx", LookIn:=xlValues)
[/vba]
Поскольку параметр LookAt не указан, он берется тот, который в данный момент установлен в Excel. И ищется не то, что вы пытаетесь найти.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВероятно здесь
[vba]
Код
Set f = .Find("xxxxx", LookIn:=xlValues)
[/vba]
Поскольку параметр LookAt не указан, он берется тот, который в данный момент установлен в Excel. И ищется не то, что вы пытаетесь найти.

Автор - RAN
Дата добавления - 25.04.2014 в 12:55
Predator_7 Дата: Пятница, 25.04.2014, 13:50 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Поскольку параметр LookAt не указан, он берется тот, который в данный момент установлен в Excel. И ищется не то, что вы пытаетесь найти.


Добрый день!

Вроде ищется то, что надо.
Стопорится на этой строке: .....Cells(f, 1).....

Подскажите, плз.
 
Ответить
Сообщение
Поскольку параметр LookAt не указан, он берется тот, который в данный момент установлен в Excel. И ищется не то, что вы пытаетесь найти.


Добрый день!

Вроде ищется то, что надо.
Стопорится на этой строке: .....Cells(f, 1).....

Подскажите, плз.

Автор - Predator_7
Дата добавления - 25.04.2014 в 13:50
RAN Дата: Пятница, 25.04.2014, 21:17 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВроде тут.

Автор - RAN
Дата добавления - 25.04.2014 в 21:17
Predator_7 Дата: Среда, 21.05.2014, 15:50 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Задачу решил, спасибо всем откликнувшимся!
Еще вопрос: как найти, например, слово "папа" затем слово "мама" выбрать этот диапазон и удалить его?
Затем пройтись дальше по строкам, опять найти и удалить и.т.д.
Вроде сделал поиск, выбрал диапазон строк и удалил, но зациклить не могу.

Спасибо.
 
Ответить
СообщениеЗадачу решил, спасибо всем откликнувшимся!
Еще вопрос: как найти, например, слово "папа" затем слово "мама" выбрать этот диапазон и удалить его?
Затем пройтись дальше по строкам, опять найти и удалить и.т.д.
Вроде сделал поиск, выбрал диапазон строк и удалил, но зациклить не могу.

Спасибо.

Автор - Predator_7
Дата добавления - 21.05.2014 в 15:50
  • Страница 1 из 1
  • 1
Поиск:

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