Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/62: Рейтинг темы: голосов - 62, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 19
1

Копирование строк в MS Word

08.03.2012, 00:26. Показов 11361. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи всем.
В прикрепленном документе информация о фильмах, мне нужно посмотреть всех актеров, которые играют в фильмах, перечисленных в документе, сидеть и перебирать 133 фильма думаю не рационально. Нельзя ли на VBA написать модуль копирования определенной строки? То есть со всех ячеек (информация о фильмах дана в виде таблицы) нужно скопировать строку "В главных ролях:..." и вставить в новый документ.
Вложения
Тип файла: docx список фильмов.docx (100.0 Кб, 51 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2012, 00:26
Ответы с готовыми решениями:

Копирование строк их excel в word по клику
Перечитал массу подобных тем, но не нашел решения для своей задачи. Постоянно приходится...

Копирование содержимого word в word из Excel с макросом
Ребят, добрый вечер! Подскажите,. пожалуйста, мне надо по сути создать копию документа WORD из...

Выборка из текста (файл ms word) предложений и копирование в новый файл (ms word) с определенным форматом
Добрый день. Очень нужна помощь в создании макроса. Есть файлы в которых содержатся вопросы и...

Копирование диапазона строк из одной книги в другую, при разном количестве строк
Добрый день ! Вопрос такой: есть две книги(например 7.1 и 7.2 ) с расшифровками счетов, счета...

5
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
08.03.2012, 08:42 2
Строки являются полями типа LINK, ссылающимися на закладки в таблице.

Сам программировал часа два, что, конечно, дольше, чем 135 вырезаний по Ctrl-F3 и одна вставка по Ctrl-Shift-F3. Так что даю вам готовенькое, а сам метод просто немного проиллюстрировал, поскольку работа с полями тема другая.

В приложенном архиве файл список фильмов.doc, можете попереключать там (по Alt-F9) вид поля/значения.

Для установки закладок использован нижеследующий макрос.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub Макрос1()
Dim i As Integer
    Selection.HomeKey unit:=wdStory 'встали на начало документа
    
    With Selection.Find
            .Text = "(^13)(В*ролях*)(^13Оператор)"
            .Replacement.Text = "\1[\2]\3" 'взяли в [] абзац(ы) "В... ролях..."
            .Forward = True
            .MatchWildcards = True  'Подстановочные знаки (в окне по CTRL-h)
            .Wrap = wdFindContinue
            .Execute Replace:=wdReplaceAll
            
    Selection.HomeKey unit:=wdStory 'вернулись в начало документа
            .Replacement.Text = ""  'очистили поле "Заменить на:"
            
        Do
            .Text = "\[*\]"
            .Wrap = wdFindStop
            .Execute                'выделили очередную порцию текста, которая в []
            i = i + 1
            ActiveDocument.Bookmarks.Add Name:="Actors_" & Format(i, "000")
                                    'поставили закладку на актёров i-го фильма
        Loop Until Not .Found
        
            .MatchWildcards = False 'Подстановочные знаки отменили
    End With
End Sub
Миниатюры
Копирование строк в MS Word   Копирование строк в MS Word   Копирование строк в MS Word  

Копирование строк в MS Word  
Вложения
Тип файла: rar Архив.rar (61.9 Кб, 47 просмотров)
1
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 19
08.03.2012, 11:20  [ТС] 3
Спасибо большое, Александр.
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
10.03.2012, 08:15 4
Вам, очевидно, нужна такая вот (транспонированная) таблица (см. рисунок).

Для одноразового транспонирования использовался следующий код.
Visual Basic
1
2
3
Sub Transposing()
Range("b2").PasteSpecial Transpose:=True 'b3, b4, b5, b6 и т. д.
End Sub
(Объединение всех моих дёрганий в единый программный концепт мне пока не по силам.)
Миниатюры
Копирование строк в MS Word  
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.03.2012, 00:06 5
Лучший ответ Сообщение было отмечено Sasha_Smirnov как решение

Решение

Сначала преобразовал в текст (1), затем подчистил — и обратно преобразовал в таблицу (2).

В Word 97, 2000, 2003 инструменты на виду, в 2007 же и не пытался искать — шуршал макросами:

(1)
Visual Basic
1
2
3
4
5
6
7
8
Sub Макрос4()
'Нет, я не знаю, что все параметры значат; numcolumns:=13, numrows:=1 - очевидные
' Макрос4 Макрос
'
    WordBasic.TextToTable ConvertFrom:=0, numcolumns:=13, numrows:=1, _
        InitialColWidth:=wdAutoPosition, Format:=0, Apply:=1184, AutoFit:=0, _
        SetDefault:=0, Word8:=0, Style:="Сетка таблицы"
End Sub
(2)
Visual Basic
1
2
3
Sub toText()
Selection.Tables.Item(1).ConvertToText Separator:=wdSeparateByParagraphs ', nestedtables:=False
End Sub
Миниатюры
Копирование строк в MS Word  
Вложения
Тип файла: rar список_фильмов.rar (36.8 Кб, 28 просмотров)
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.03.2012, 00:47 6
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Сначала преобразовал в текст (1), затем подчистил — и обратно преобразовал в таблицу (2).
Перепутал макросы (1) и (2)!
0
11.03.2012, 00:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2012, 00:47
Помогаю со студенческими работами здесь

Сравнение строк в нескольких файлах excel, копирование несовпадающих строк и их вывод в сводный файл
Добрый день, только только начал разбираться с VBA в excel, поэтому прошу помощи (схожие темы...

Копирование текста в Word
Всем привет, имеется некоторый текст в Word(первый текст). Мне нужно провести над ним некоторые...

Копирование из Word в Excel
Добрый день, уважаемые программисты. При копировании ячеек из таблицы Word в таблицу Excel я...

Копирование данных из Excell to Word
Привет. Помогите подправить код, пожалуйста. Нужно, чтобы в документ Word копировались данные не из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru