вставка одного и того же текста в начале каждой ячейки
Здравствуйте.
Имеется огромная таблица с данными (фрагмент)
0219-0010
0020
0030
0050
0080
0090
0260-0000
0030
0050
0261-0000
0020
0040
Номера вида хххх-хххх, но в исходнике каждые первые 4 цифры (до дефиса) указывались только один раз, в последующих строках они подразумевались, а указывались только цифры после дефиса. Надо преобразовать в полные номера, т. е.
0219-0010
0219-0020
.
0219-0090
0260-0000
0260-0030
0260-0050
0261-0000
0261-0020
0261-0040
(выделено жирным для наглядности, в файле выделения нет)
Т. е. в той строке, где 8 цифр, скопировать первые четыре цифры (до дефиса) и сам дефис, в последующих строках (тех, где только по 4 цифры) вставить это спереди, не замещая имеющиеся цифры (до следующей 8-значной строки). Гуглением не нашел, как можно вставить один и тот же текст сразу в несколько ячеек и без замены имеющегося там текста.
Ну и совсем хорошо, если можно научить макрос находить 8-значную ячейку, брать там первые 4 цифры с дефисом и вставлять в ниже расположенные 4-значные ячейки. Затем следующую 8-значную — аналогично и т. д.
2 Ответ от Fck_This 07.05.2018 10:22:17
Re: вставка одного и того же текста в начале каждой ячейки
Это так не работает. Многое зависит от того, какие у вас таблицы (есть ли объединённые ячейки, в каком столбце располагаются данные цифры, какого вида может быть иной текст в данном столбце).
Сбросьте документ для примера.
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
3 Ответ от glavsnab 07.05.2018 11:25:44
Re: вставка одного и того же текста в начале каждой ячейки
Сейчас таблица состоит из 4-х столбцов, вышеуказанные номера — в первом и третьем. Однако, ее можно разбить на части по два столбца (это в дальнейшем все равно потребуется). Тогда получится первый столбец с указанными цифрами и второй — с иными, не требующими изменений.
Объединенных ячеек нет, иного текста в этом столбце нет (не должно быть, а если и встретится — будет исправлено перед тем, как. ).
Фрагмент во вложении.
Post’s attachments
пример номеров.docx 15.58 Кб, 2 скачиваний с 2018-05-07
You don’t have the permssions to download the attachments of this post.
4 Ответ от Fck_This 07.05.2018 12:55:57
- Fck_This
- генерал-полковник
- Неактивен
- Откуда: Минск, Беларусь
- Зарегистрирован: 13.07.2016
- Сообщений: 648
- Поблагодарили: 97
- За сообщение: 1
Re: вставка одного и того же текста в начале каждой ячейки
Сработает на всех таблицах документа (на данных в первой и третьей колоннах)
Sub AddNumber() 'vbadevelope@yandex.ru для wordexpert.ru 'Добавляем номера из ячейки в последующие ячейки Dim oDoc As Document Set oDoc = ActiveDocument Dim oTable As Table Application.ScreenUpdating = False For Each oTable In oDoc.Tables Call ColumnsAddNumber(oTable.Columns(1)) Call ColumnsAddNumber(oTable.Columns(3)) Next oTable Application.ScreenUpdating = True End Sub Private Sub ColumnsAddNumber(ByRef oColumn As Column) Dim oCell As Cell Dim sCopy As String For Each oCell In oColumn.Cells If Len(oCell.Range.Text) >= 8 Then sCopy = Left(oCell.Range.Text, 4) Else oCell.Range.Select Selection.Collapse Direction:=wdCollapseStart Selection.Range.Text = sCopy & Chr(45) End If Next oCell End Sub
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871
5 Ответ от glavsnab 08.05.2018 01:56:36
Re: вставка одного и того же текста в начале каждой ячейки
Спасибо!
Макрос периодически ругался так:
«Run-time error ‘5992’: Отсутствует доступ к отдельным столбцам, поскольку ячейки таблицы имеют разную ширину»
Пытался ровнять ширину столбцов, ставить курсор на другую таблицу перед запуском макроса — не помогло. Изворачивался либо разбиением таблицы на две, либо вставкой новых пустых строк правильной ширины и копированием в них данных из «неправильных» строк.
Сообщений [ 5 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Настройка расширения ячеек таблицы с содержимым в Word
Word обычно автоматически переносит текст в ячейке таблицы. Тем не менее если для строк задана точная высота, ячейки не будут расширяться при добавления в них содержимого. Чтобы высота строки изменялась в зависимости от объема содержимого в ячейке, выполните следующие действия:
- Выделите таблицу.
- Чтобы выбрать таблицу, вы можете выбрать ее.
- Щелкните таблицу правой кнопкой мыши, выберите свойства таблицыи перейдите на вкладку Строка.
- Установите флажок Высота.
- Выберите стрелку рядом с строкой Высота, а затем выберите по крайней мере.
- Нажмите кнопку ОК.
- Чтобы текст был виден, щелкните правой кнопкой мыши выбранную таблицу и выберите распределить строки равномерно.

Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.




В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
Преобразование текста в таблицу или таблицы в текст

Чтобы преобразовать текст в таблицу или таблицу в текст, начните с щелчка Показать и скрыть абзац на вкладке Главная . Это позволяет увидеть, как текст разделяется в документе.

Преобразование текста в таблицу
- Чтобы отметить границы столбцов, в которых вы хотите расположить текст, вставьте знаки разделения, например запятые или знаки табуляции.
Примечание: Если в тексте есть запятые, в качестве разделителей используйте знаки табуляции.


В разделе Размер таблицы убедитесь в том, что указанные числа соответствуют требуемому количеству столбцов и строк. В разделе Автоподбор ширины столбцов выберите вид таблицы. Word автоматически подбирает ширину столбцов таблицы. Если вам нужны столбцы другой ширины, выполните одно из перечисленных ниже действий.| Действие | Параметр |
| Задать ширину всех столбцов | В поле Фиксированная ширина столбца введите или выберите необходимое значение. |
| Изменить размер столбцов в соответствии с шириной текста в каждом столбце | Автоподбор по содержимому |
| Автоматически менять размер таблицы при изменении ширины доступного пространства (например, режим веб-документа или альбомная ориентация) | Автоподбор по ширине окна |
В разделе Разделитель текста выберите использованный в тексте знак разделителя.

Преобразование таблицы в текст

- Выделите строки или таблицу для преобразования в текст.
- На вкладке Макет в разделе Данные выберите Преобразовать в текст.
- В окне Таблицу в текст в разделе Разделитель выберите знак разделения, который будет использоваться вместо границ столбцов. Строки будут разделены знаками абзаца.
- Нажмите кнопку ОК.
Вставить определенный текст в пустые ячейки таблицы word, поправить макрос
Добрый день, ребята выручайте! Часа 3 пытаюсь найти не получается.
Задача — есть таблица word, нужно вставить текст в каждую пустую ячейку этой таблицы.
Нашел такой макрос, он мне подходит, но вместо вставки текста он раскрашивает, помогите исправить это
1 2 3 4 5 6 7 8
Sub ColorOfEmptyCells() Dim oCell As Cell For Each oCell In Selection.Tables(1).Range.Cells If oCell.Range.Characters.Count = 1 Then oCell.Shading.BackgroundPatternColor = wdColorGray50 End If Next End Sub
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Не могу объединить пустые ячейки таблицы Word
Задача в таблице Word объединить пустые ячейки q10 = 0 nb = 0 Do While q10 <.
Вставить изображение в ячейки таблицы Word
Добрый день! В документе Word есть таблица, состоит из 1 строки и двух ячеек. Нужно в каждую.
Вставить определенный символ в конце ячейки
Здравствуйте! Подскажите пожалуйста как в ексель методом vba вставить символ | в конце каждой.
Написать макрос, который бы сжимал таблицы, удаляя в них пустые строки
Задание № 1. Условие. Написать макрос, который бы сжимал таблицы, удаляя в них пустые строки. .
11533 / 4742 / 765
Регистрация: 07.08.2010
Сообщений: 13,790
Записей в блоге: 4

Сообщение было отмечено goscomment как решение
Решение
попробуйте
1 2 3 4 5 6 7 8
Sub ColorOfEmptyCells() Dim oCell As Cell For Each oCell In Selection.Tables(1).Range.Cells If oCell.Range.Characters.Count Then oCell.range.text="mmm" End If Next End Sub
