Объединить таблицы в ворде макрос
Подскажите, please, почему происходит ошибка при отмене разбиения или при нажатии Esc?
Задумывалось так, чтобы при нахождении курсора в таблице, было предложено разбить ячейку, в которой курсор.
Если же было выделено несколько ячеек, то сначала должно быть предложение их слить, а при ответе "НЕТ" — опять же разбить.
Но если отказаться от разбиения, то выскакивает ошибка.
Sub ЯчейкиОбъединитьИлиРазбить()
If Selection.Cells.Count Razbivka:
Application.Run MacroName:="TableSplitCells"
GoTo Vykhod
Else
If MsgBox("Слить выделенные ячейки в одну?", vbYesNoCancel + vbDefaultButton2 + vbQuestion, "СЛИЯНИЕ ИЛИ РАЗБИВКА КЛЕТОК") = vbYes Then
Application.Run MacroName:="TableMergeCells"
Else
GoTo Razbivka
End If
End If
Vykhod:
End Sub
Подскажите, please, почему происходит ошибка при отмене разбиения или при нажатии Esc?
Задумывалось так, чтобы при нахождении курсора в таблице, было предложено разбить ячейку, в которой курсор.
Если же было выделено несколько ячеек, то сначала должно быть предложение их слить, а при ответе "НЕТ" — опять же разбить.
Но если отказаться от разбиения, то выскакивает ошибка.
Sub ЯчейкиОбъединитьИлиРазбить()
If Selection.Cells.Count Razbivka:
Application.Run MacroName:="TableSplitCells"
GoTo Vykhod
Else
If MsgBox("Слить выделенные ячейки в одну?", vbYesNoCancel + vbDefaultButton2 + vbQuestion, "СЛИЯНИЕ ИЛИ РАЗБИВКА КЛЕТОК") = vbYes Then
Application.Run MacroName:="TableMergeCells"
Else
GoTo Razbivka
End If
End If
Vykhod:
End Sub
Задумывалось так, чтобы при нахождении курсора в таблице, было предложено разбить ячейку, в которой курсор.
Если же было выделено несколько ячеек, то сначала должно быть предложение их слить, а при ответе "НЕТ" — опять же разбить.
Но если отказаться от разбиения, то выскакивает ошибка.
Sub ЯчейкиОбъединитьИлиРазбить()
If Selection.Cells.Count Razbivka:
Application.Run MacroName:="TableSplitCells"
GoTo Vykhod
Else
If MsgBox("Слить выделенные ячейки в одну?", vbYesNoCancel + vbDefaultButton2 + vbQuestion, "СЛИЯНИЕ ИЛИ РАЗБИВКА КЛЕТОК") = vbYes Then
Application.Run MacroName:="TableMergeCells"
Else
GoTo Razbivka
End If
End If
Vykhod:
End Sub
Быть или не быть, вот в чем загвоздка!
Не могу объединить пустые ячейки таблицы Word
Задача в таблице Word объединить пустые ячейки q10 = 0 nb = 0 Do While q10 <.
Word -> Различный Aligment (влево-вправо) для разных колонок или ячеек(cell) Word-таблицы?
Как пограммно из VBA при формирования документа сделать различный Aligment (влево-вправо-по.
Объединить div-ы как ячейки таблицы
Доброго дня господа. Представьте себе таблицу из трех ячеек: в первом столбце две ячейки, во втором.
Как объединить ячейки в строке таблицы DBGrid
Здравствуйте форумчани. Не подскажите такой вопрос. Создаю базу данных с помощью DatabaseDesktop.
Решение
Решение
Понимаю, что ответ состоялся. Просто делюсь своим опытом
управлял процессом формирования таблицы в документе Word из VBA Excel
PS. если убрать указатели myWord и oDocument, то команды работают из-под Word
и вот тут особенность.
Я не рекомендую настраивать вертикальное объединение ячеек в начале работы с таблицей.
не знаю почему, но при последующих манипуляциях может слететь вся таблица построчно (вот тут хотелось бы услыхать умное объяснение великого табличного косяка всех Wordов после 97 версии).
Этот "вылет" кучеряв великим сдохом всего документа Word в недалеком будущем.
Чтобы избежать этого, я делал все горизонтальные объединения в начале работы с таблицей, все вертикальные (а их не так много) - в конце, когда текст уже введен в первую ячейку каждого случая с объединением и вся таблица отформатирована.
хмм.
Может мало лет прошло?! 4.
Как выравнять ячейки таблицы в MS Office Word?
В ранних версиях было всё просто. Но сейчас эту возможность не найти. Неужели её убрали и теперь.
= Мир MS Excel/Статьи об Excel
Приёмы работы с книгами, листами, диапазонами, ячейками [6] |
Приёмы работы с формулами [13] |
Настройки Excel [3] |
Инструменты Excel [4] |
Интеграция Excel с другими приложениями [4] |
Форматирование [1] |
Выпадающие списки [2] |
Примечания [1] |
Сводные таблицы [1] |
Гиперссылки [1] |
Excel и интернет [1] |
Excel для Windows и Excel для Mac OS [2] |
- в таблице не должно быть объединенных ячеек. Вернее сказать так: ЕСЛИ в таблице есть объединённые ячейки, то надо быть готовым к тому, что при экспорте объединение будет отменено, и соответственно образуются лишние пустые строки и/или столбцы, что может нарушить структуру таблицы. В общем, объединённые ячейки - это зло :)
- все столбцы должны иметь уникальные названия, которые будут использоваться при слиянии. Если в таблице отсутствует первая строка с названиями столбцов, то её заменит первая строка данных, а значит, она в рассылке участвовать не будет.
На этом этапе в текстовом редакторе Word формируется документ, в который в дальнейшем будут внедряться данные электронной таблицы. Текст этого документа представляет собой общую для всех рассылок часть.
Предположим всем клиентам, у которых срок действия клубной карты истекает в следующем месяце, планируется разослать письма с уведомлением.
Текст письма будет одинаковым за исключением обращения, номера клубной карты и даты окончания её действия. Эти данные будут импортироваться из таблицы Excel (выделено синим)
Для более удобной дальнейшей работы при слиянии рекомендуется установить параметр Затенение полей в положение Всегда, чтобы отличать вставленные поля слияния от обычного текста. Если этот параметр включен, поля отображаются на сером фоне. На печать этот фон, естественно, не выводится.
Проще всего осуществить слияние данных, следуя указаниям Мастера слияния. В версиях после Word2003 Мастер слияния запускается с помощью кнопки Начать слияние на вкладке Рассылки
В версиях до Word2007 следует выполнить команду меню Сервис -- Письма и рассылки -- Слияние. Кроме того, для более удобной работы версиях до Word2007 можно вывести панель инструментов Слияние
Ещё раз обращаю внимание, что в бланке письма содержится только общий для всех писем текст, поэтому обращение выглядит как Уважаем!, а номер карты и дата пропущены.
Выбираем поле Имя, нажимаем Вставить, то же самое для поля Отчество. Закрываем окно Вставка полей слияния и добавляем пробелы между вставленными полями. Если параметр Затенение полей установлен в положение Всегда, то вставленные поля будут отчетливо видны на сером фоне. Устанавливаем курсор после №, снова нажимаем ссылку Другие элементы. , выбираем № клубной карты - Вставить. Аналогично вставляем поле Дата окончания действия карты
Кроме указанных выше полей требуется вставить окончание обращения ый(ая), которое зависит от значения поля Пол. Для этого воспользуемся специальным полем, позволяющим вставлять одно из двух значений в зависимости от данных. Поставим курсор сразу после слова "Уважаем", нажмём кнопку Правила на вкладке Рассылки и выберем вариант IF. THEN. ELSE. В версиях до Word2007 аналогичная кнопка называется Добавить поле Word и находится на панели инструментов Слияние
В раскрывшемся диалоговом окне зададим параметры
После нажатия ОК, получим результат
Таблицы Word и Excel во многом схожи. Но есть различия, которые приводят к печальным последствиям. Рассмотрим подробнее, чем отличаются таблицы Word и Excel.
По окончании этого урока вы сможете:
- Копировать и вставлять таблицы из Word в Excel и наоборот
- Рассказать об отличиях таблицы Word в Excel
- Приводить таблицу Word в порядок перед копированием её в Excel
1. Копирование и вставка таблицы из Word в Excel и наоборот
Шаг 1. Копируем таблицу из Word в Excel
Шаг 2. Копируем таблицу из Excel в Word
В этом видео я обратилась к уроку 56 , где я рассказала, как сделать таблицу по умолчанию. Если мы копируем одну таблицу, то с ней можно поработать индивидуально, а если мы копируем 5 таблиц? Я давала такой совет: сохраните параметры таблицы по умолчанию в шаблоне Normal.
2. Отличия таблиц Word и Excel
Огромное преимущество Word – это работа с непечатаемыми символами. К сожалению, в Excel непечатаемые символы присутствуют в неявном виде. На уроке «Excel 22. Размер ячеек» я показала как сделать в Excel искусственный перенос текста на новую строчку:
Для этого необходимо поставить курсор в нужное место и нажать Alt+Enter на клавиатуре.
Шаг 1. Скопируем таблицу в Excel и вставим в Word:
В общем ничего страшного: ненужные непечатаемые символы в Word мы можем всегда убрать командой «Замена». А вот при копировании таблицы из в Excel нас подстерегают неожиданности.
Я создала таблицу в Word с такими особенностями:
- Создание новой строки разрывом (Shift+Enter) 2 раза
- Создание новой строки Enter (строго говоря мы создали не новую строку, а новый абзац)
- Несовпадение вертикальных границ (я сделала несовпадение заметным, но часто несовпадения бывают такими мизерными, с первого взгляда не заметишь).
Шаг 2. Скопируем таблицу из Word в Excel:
- Разрыв строки приводит к созданию новых ячеек (количество разрывов строки в Word = количество ячеек + 1в Excel)
- Символ конца абзаца приводит к созданию новых ячеек (количество символов конца абзаца в Word= количество ячеек + 1 в Excel)
- Несовпадения вертикальных границ в таблице Word приводит к созданию новых ячеек (тут уж непредсказуемо). Ячейка с минусом – это объединённая ячейка D2:E2, а ячейка с минусом – ячейка F2.
Опять-таки можно побороться с этим вручную, но объединение двух и более ячеек с содержимым приводит к потере содержимого. В объединенной ячейке сохраняется только значение из верхней левой ячейки диапазона. Остальные значения будут потеряны:
А вот результат:
Образовалась объединённая ячейка. Осталось содержимое только верхней левой ячейки.
Так что работа по исправлению таблицы предстоит немаленькая.
3. Таблица Word в порядок перед копированием её в Excel
Шаг 2. Как удалить символы конца абзаца и разрывы страниц смотрите уроки
Теперь вы сможете:
- Копировать и вставлять таблицы из Word в Excel и наоборот
- Рассказать об отличиях таблицы Word в Excel
- Приводить таблицу Word в порядок перед копированием её в Excel
Я написала этот урок, потому что ко мне неоднократно обращались с этой проблемой.
Приходилось ли вам выполнять при форматировании документа несколько раз повторять одни и те же команды? Предположим, в документе 50 таблиц. И каждую надо привести в порядок. Повторяющиеся заголовки, выравнивание назначить, да мало ли чего ещё сделать. И вот раз за разом повторяются одни те же команды. Так что знакомимся с понятием МАКРОС В ТАБЛИЦЕ.
В офисных программах есть замечательная возможность: объединить несколько команд в одну макрокоманду. Макрокоманда – это последовательность команд, которые будут работать автоматически при запуске макроса.
Я приложила к уроку документ с несколькими таблицами (скачать файл тут). Я удалила текст документа (всё-таки авторское право и всё такое…):
По окончании урока вы сможете:
- Составить алгоритм форматирования таблицы
- Настроить ленту «Разработчик»
- Записать макрос форматирования таблицы
- Проверить макрос в действии
- Добавить кнопку «Макрос» на панель быстрого доступа
1. Алгоритм форматирования таблицы
Прежде, чем приступить к созданию макроса, следует тщательно продумать, какие команды нам понадобятся. Начнём с верха таблицы
- Заголовок, повторяющийся при переходе таблицы на следующую страницу
- Выравнивание содержимого ячеек заголовков по центру и по середине
- Заливка строки заголовка цветом
- Текст заголовка таблицы полужирного начертания красного цвета
- Поля ячеек – 0,05
- Видимые границы для всей таблицы красного цвета
- Автоподбор по ширине окна (вдруг таблица меньше ширины печатного поля)
Почему такая последовательность? При написании макрокоманды есть одна особенность:
Понять и запомнить! | Ни в коем случае нельзя щелкать ЛМ по области документа! Работать только с лентами! |
Так вот, после выделения заголовка можно выделить всю таблицу командой с ленты, а наоборот – нельзя!
Итак, нам надо записать семь команд одной макрокомандой. По ходу дела команд может оказаться больше.
Для того, чтобы записать макрос, необходимо найти эту команду. Команда «Запись макроса» находится на ленте «Разработчик», которая в настоящий момент не видна.
2. Настройка ленты «Разработчик»
Шаг 1. Выходим в режим настраивания ленте (ПМ в любом месте любой ленты → команда Настроить ленту из контекстного меню):
Шаг 1. Отметим галочкой ленту «Разработчик»[1]
Вообще-то команда «Запись макроса» есть на ленте «Вид»:
Но на ленте «Разработчик» есть много других команд, которыми я активно пользуюсь, например, создание форм и полей, поэтому эта лента присутствует у меня в обязательном порядке.
3. Макрос для таблицы. Запись макроса для форматирования таблицы
Шаг 1. Выделяем заголовок таблицы (щелкаем ЛМ на полосе выделения напротив заголовка таблицы):
Шаг 2. Запускаем запись макроса (лента Разработчик → группа команд Код → команда Запись макроса):
- Можно ввести имя макроса, но имейте в виду, что пробелы недопустимы, то есть имя макроса будет выглядеть так – «Форматирование таблицы».
- Назначить выполнение макроса от нажатия единственной кнопке. Но кнопка должна быть уникальная (никогда не пользуюсь).
- Ввести описание макроса. Здесь никаких ограничений. Конечно, если макрос единственный, то можно и обойтись без описания. Я часто использую макросы, поэтому без описания просто не обойтись.
- Назначить выполнение макроса от нажатия сочетания функциональной клавиши плюс любой клавиши. Но при этом недопустимо использовать устойчивые системные сочетания, например, Ctrl+X, так как это сочетание зарезервировано для команды «Вырезать в буфер обмена».
- Из этого выпадающего меню выбираем доступность макроса для определенного документа. Если выбираем Normal.dotm, то наш макрос будет доступен для всех документов, созданных на основе шаблона Normal.dotm. Если мы создали документ на основе другого пользовательского шаблона, то в списке появится имя этого пользовательского шаблона, и тогда все документы на основе этого шаблона будут иметь внедрённый макрос. Но это действительно только для шаблонов, которые имеются на нашем компьютере.
Шаг 3. Назначаем сочетание клавиш (например, Ctrl+1):
Нажимаем клавиши «Назначить» и «Закрыть» и знакомимся с новым видом курсора:
Шаг 4. Назначаем режим «Повторить строки заголовков» (лента Макет → группа команд Данные → команда Повторить строки заголовков):
Шаг 5. Назначаем выравнивание содержимого ячеек строки заголовков по центру (лента Макет → группа команд Выравнивание → команда Выровнять по центру):
Шаг 6. Назначаем заливку строки заголовка (лента Конструктор → группа команд Стили таблиц → команда Заливка → выбор цвета заливки из палитры):
Шаг 7. Устанавливаем полужирное начертание шрифта заголовка и назначаем ему красный цвет (лента Главная → группа команд Шрифт → кнопка «Ж» и кнопка Цвет текста → выбор цвета из палитры):
Шаг 8. Выделяем всю таблицу лента Макет → группа команд Таблица → команда Выделить → команда Выделить таблицу из выпадающего меню):
Шаг 9. Назначаем границы таблицы (лента Конструктор → группа команд Обрамление → команда Цвет пера → выбор цвета границы из палитры → команда Граница → команда Все границы из выпадающего меню):
Шаг 10. Назначаем поля ячеек (лента Макет → группа команд Выравнивание → команда Поля ячейки → диалоговое окно Параметры таблицы[2] → Поля ячеек пользовательские):
Шаг 11. Устанавливаем Автоподбор таблицы по ширине окна (лента Макет → группа команд Размер ячейки → команда Автоподбор по ширине окна[3] из выпадающего меню):
Шаг 12. Останавливаем запись макроса (лента Разработчик → группа команд Код → команда Остановить запись):
Команда «Остановить запись» дублируется скромным квадратиком на строке состояния:
Всё! Макрос для таблицы готов!
4. Проверка макроса в действии
Шаг 1. Выделяем заголовок любой таблицы:
Шаг 2. Нажимаем сочетание клавиш Ctrl+1 и любуемся результатом:
А теперь посмотрим, как будет работать макрос на таблице со сложным заголовком. В учебном файле это Таблица 4.
Шаг 1. Выделяем сложный заголовок, то есть заголовок, состоящий из двух строчек и объединённых ячеек:
Шаг 2. Нажимаем сочетание клавиш Ctrl+1 и любуемся результатом:
5. Кнопка запуска макроса «Форматирование_таблицы» на Панели быстрого доступа
Шаг 1. Вызываем диалоговое окно «Параметры Word» (Панель быстрого доступа → команда Другие команды из выпадающего меню):
Как настраивать Панель быстрого доступа я рассказывала в Уроке 18 и Уроке 19.
Шаг 2. Выбираем список «Макрос» (кнопка выпадающего меню → список Макрос):
Шаг 3. Добавляем макрос для таблицы на Панель быстрого доступа (пока макрос один, но у нас всё впереди):
ОК! А вот результат:
Макрос для таблицы будет запускаться при нажатии кнопки на Панели быстрого доступа.
Теперь вы сможете:
- Составить алгоритм форматирования таблицы
- Настроить ленту «Разработчик»
- Записать макрос форматирования таблицы
- Проверить макрос в действии
- Добавить кнопку «Макрос» на панель быстрого доступа
[1] В контекстном меню – «Настройка ленты», а в окне «Параметры Word» – «Вкладка»
[2] Интересно, почему команда Поля ячейка, а диалоговое окно называется Параметры таблицы? Загадка природы, небрежность переводчиков или шутка разработчиков?
[3] Вообще-то команда имеет смысл «Автоподбор по ширине печатного поля», но не будем придираться.
Читайте также: