Добрый день! Казалось бы, элементарная задача: Отформатировать столбцы таблицы (выравнивание, перенос текста и.т.д.) определенным образом. Все бы ничего, но в таблице присутствуют объединенные ячейки. В таблице присутствуют и текстовые данные и числовые. Таблица большая, прикладываю кусок. В объединенных ячейках - только текст. При форматировании вручную с выделением столбцов все ОК, но макросом сделать у меня не получается. Т.к. применяется форматирование к столбцу (выравнивание по горизонтали посередине) , например С, а он есть и в области объединенных ячеек, то и текст в А В и.т.д. тоже выравнивается посередине. Можно сделать так: Не изменять формат в объединенных ячейках, оставить, как есть или выровнять по левому краю. Необходимо: Столбец A- выравнивание по гориз. по левому краю Столбец B- выравнивание по гориз. по левому краю Столбец C- выравнивание по гориз по середине Столбец D- выравнивание по гориз. по правому краю Столбец E- выравнивание по гориз. по правому краю
По вертикали- по середине всю таблицу Перенос текста- везде Авто-высота строк- везде Числовое значение в столбце D - умножалось на коэффициент в ячейке G1
Спасибо всем откликнувшимся!
Добрый день! Казалось бы, элементарная задача: Отформатировать столбцы таблицы (выравнивание, перенос текста и.т.д.) определенным образом. Все бы ничего, но в таблице присутствуют объединенные ячейки. В таблице присутствуют и текстовые данные и числовые. Таблица большая, прикладываю кусок. В объединенных ячейках - только текст. При форматировании вручную с выделением столбцов все ОК, но макросом сделать у меня не получается. Т.к. применяется форматирование к столбцу (выравнивание по горизонтали посередине) , например С, а он есть и в области объединенных ячеек, то и текст в А В и.т.д. тоже выравнивается посередине. Можно сделать так: Не изменять формат в объединенных ячейках, оставить, как есть или выровнять по левому краю. Необходимо: Столбец A- выравнивание по гориз. по левому краю Столбец B- выравнивание по гориз. по левому краю Столбец C- выравнивание по гориз по середине Столбец D- выравнивание по гориз. по правому краю Столбец E- выравнивание по гориз. по правому краю
По вертикали- по середине всю таблицу Перенос текста- везде Авто-высота строк- везде Числовое значение в столбце D - умножалось на коэффициент в ячейке G1
Вас спасет только отказ от объединения ячеек. В Вашем случае сделать это скорее всего совсем не сложно, при том, что визуально все будет выглядеть так, как будто ячейки объединены.
Вас спасет только отказ от объединения ячеек. В Вашем случае сделать это скорее всего совсем не сложно, при том, что визуально все будет выглядеть так, как будто ячейки объединены.igrtsk
Инструктор по применению лосей в кавалерийских частях РККА
Да, я пробовал применять UnMerge ко всему документу, но текст в них съезжает влево и обязательно, чтобы где есть цифры 1,2,3 и.т.д. в столбце А, необходимо оставить объединение в этой строке B, C, D, E или отменить в этих строках перенос текста.
Да, я пробовал применять UnMerge ко всему документу, но текст в них съезжает влево и обязательно, чтобы где есть цифры 1,2,3 и.т.д. в столбце А, необходимо оставить объединение в этой строке B, C, D, E или отменить в этих строках перенос текста.Predator_7
Я стараюсь избегать объединения вообще, используя вместо него: Формат ячеек \ Выравнивание \ По горизонтали \ По центру выделения. Визуально смотрится абсолютно одинаково.
Записанный макрорекордером алгоритм борьбы с вашей проблемой примерно такой:
Я стараюсь избегать объединения вообще, используя вместо него: Формат ячеек \ Выравнивание \ По горизонтали \ По центру выделения. Визуально смотрится абсолютно одинаково.
Записанный макрорекордером алгоритм борьбы с вашей проблемой примерно такой:
Спасибо, но дело в том, что из pdf получается лист именно в таком виде. Применив макрос ко всему листу мы получаем везде выравнивание по середине, а это не нужно. Это можно применить только где есть значения в столбце А (1,2,3,......20), а это нефиксированные строки, их порядок и расположение меняется. Можно как-то искать значения 1,2,3,..... в столбце А, и если находится, то рядом в этой строчке (справа) объединять заново ячейки от В до Е ? А если нет 1,2,3,....., то пропускать?
Может это будет выход? Как выглядит при этом макрос?
Спасибо!
Спасибо, но дело в том, что из pdf получается лист именно в таком виде. Применив макрос ко всему листу мы получаем везде выравнивание по середине, а это не нужно. Это можно применить только где есть значения в столбце А (1,2,3,......20), а это нефиксированные строки, их порядок и расположение меняется. Можно как-то искать значения 1,2,3,..... в столбце А, и если находится, то рядом в этой строчке (справа) объединять заново ячейки от В до Е ? А если нет 1,2,3,....., то пропускать?
Может это будет выход? Как выглядит при этом макрос?
Еще вопрос. Где ошибка? Пробую все таки найти значение "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]Оформляйте коды тегами. Накажу!
Еще вопрос. Где ошибка? Пробую все таки найти значение "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
Задачу решил, спасибо всем откликнувшимся! Еще вопрос: как найти, например, слово "папа" затем слово "мама" выбрать этот диапазон и удалить его? Затем пройтись дальше по строкам, опять найти и удалить и.т.д. Вроде сделал поиск, выбрал диапазон строк и удалил, но зациклить не могу.
Спасибо.
Задачу решил, спасибо всем откликнувшимся! Еще вопрос: как найти, например, слово "папа" затем слово "мама" выбрать этот диапазон и удалить его? Затем пройтись дальше по строкам, опять найти и удалить и.т.д. Вроде сделал поиск, выбрал диапазон строк и удалил, но зациклить не могу.