Статьи из блога
Разнос данных по строкам и столбцам таблицы
Игорь спрашивает:
Есть ряд слов:
собака кошка мышка кенгуру
цыпленок хомяк мишка птичка.
Как мне их добавить в таблицу, состоящую из 4 столбцов и 2 строк, чтобы каждое слово находилось в отдельной ячейке, не применяя к каждому слову операцию вырезать-вставить. Эти слова у меня так и находятся в столбик по 4 слова в строчку в вордовском документе (так же, как я и написал в примере), а чуть ниже есть таблица пустая, вот туда мне и надо их вставить.
Игорь, попробуйте вот такой макрос (ниже). Выделите ваши слова и запустите макрос:
Sub insertToTable() Dim sStr1 As String Dim sStr() As String Dim rng As Range Dim oTbl As Table Dim i As Long sStr1 = Trim(Replace(Selection.Text, Chr(13), Chr(32))) Selection.Text = sStr1 & vbCr Set oTbl = ActiveDocument.Tables(1) Set rng = Selection.Range sStr = Split(rng, Chr(32)) For i = 0 To (UBound(sStr) - 1) oTbl.Cell(1, 1).Range.Text = sStr(0) oTbl.Cell(1, 2).Range.Text = sStr(1) oTbl.Cell(1, 3).Range.Text = sStr(2) oTbl.Cell(1, 4).Range.Text = sStr(3) oTbl.Cell(2, 1).Range.Text = sStr(4) oTbl.Cell(2, 2).Range.Text = sStr(5) oTbl.Cell(2, 3).Range.Text = sStr(6) oTbl.Cell(2, 4).Range.Text = sStr(7) Next i End Sub
Если вы не знаете, как подключить к документу и применить эти макросы, изучите следующие заметки с сайта:
Создание макроса из готового кода
Рубрика: Таблицы Word, Макросы, Вопрос-Ответ
Метки: макросы | таблицы
Просмотров: 29905
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | таблицы
Просмотров: 29905
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Абзац с цветным фоном
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Белый текст на синем фоне в Word 2007
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрое удаление границ у таблицы
- Быстрый ввод текста с помощью команды =rand()
- Ввод повторяющихся фрагментов текста в Word 2007
- Ввод часто повторяющихся фрагментов текста
- Вертикальное выравнивание текста
- Возможно ли запретить копирование текста из документа Word?
- Вопрос о работе с графиками (диаграммами) в Word
Комментариев: 14
Странно, зачем заменять знаки абзаца пробелами? Если можно разбивать на слова построчно и сразу же, построчно, добавлять в таблицу. Но на скорую руку пойдет. Хорошая работа.
Только что попробовал стандартную функцию преобразовать в таблицу. Указал 4 столбца и пробел в качестве разделителя. Все сработало.
Да уж, в данном случае применение макроса - это стрельба из пушки по воробьям.
Стандартное: Таблица -> Преобразовать Текст в Таблицу отлично справляется с поставленной задачей!
Небольшая опечатка: оператор For не нужен, т.к. переменная i не используется, индексы прописаны статически.
Возможно еще проще. Выделить-Таблица-вставить.
Вот есть вопросы по word незнаю к кому обратится думаю сюда
1 какой символ ключа предотвращает обновление полей включенных в результат поля
\! или \* или \# или \@
2 Какой символ ключа формирует результаты дата/время в соответствии с указаным шаблоном
\! или \* или \# или \@
3 Для чего предназначены аргументы поля автоматизации
1 Для определения выполняемых функции
2 Для идентификации частей поля
3 Для управления работой поля
4 Для использования в других полях
4 Над полем типа - допустимы операции
1 Дату разделить на дату
2 Дату умножить на число
3 Дату разделить на число
4 К дате прибавить число
Прошу помочь остались только эти вопросы надеюсь на Вас
Добрый день!
Возник следующий вопрос:
Есть, например, три документа Word : 1.doc, 2.doc, 3.doc.
Возможно ли сделать так чтобы в документе 1.doc узнать количество страниц и заголовки из документов 2.doc и 3.doc.
Т.е. из одного документа прочитать даннные в другом документе?
Заранее спасибо за помощь!
Конечно, возможно
Можно поконкретней? Может пример есть как это сделать?
Пишите viter точка alex собака gmail точка com. Желательно с примерами документов
Зачем писать целый маркос для операции, которую можно сделать обычным copy/paste?
Ведь куда проще:
1) Копируем текст в буфер обмена.
2) Создаём пустую таблицу с количеством колонок и строк, равным их количеству (ожидаемому) в скопированном тексте.
3) Выделяем таблицу и вставляем текст из буфера
==> вуа-ля! Таблица готова и никаких заморочек с макросами.
P.S.: Для большого объёма данных можно использовать функцию "Convert text to table", указав "пробел" как разделитель (или другой символ в зависимости от исходного материала).
Писать макрос для данной операции - это всё равно что чесать правой рукой левое ухо.
Сколько скрытых возможностей в Word. Я раньше использовал Таблица - Преобразовать - Текст в таблицу и только сегодня узнал, что есть др. способы.
Kostero, olegko - как вы узнали об этих способах?
А зачем нужен цикл в конце макроса? Зачем 8 раз одно и тоже прописывать в ячейки таблицы:
итератор i в теле цикла не используется. Цикл вообще не нужен, или процедуру лучше переписать так
А можно еще все необходимые слова, скопировать в Excel и он сам автоматически расставит их в таблицу, потом просто эту таблицу вставить в Word.