Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 00:05   #1
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию Макрос для импорта или копирования из Word

Помогите написать макрос для импорта или копирования из Word

Задача такова.
Есть база решенных тестовых вопросов в документе Word (картинки прикрепляю)
Надо чтобы макрос перенес эти тестовые вопросы и ответы в документ Excel.
При этом есть условие, что вопросы и ответы помешались в диапазоне А:А,а в диапазоне В:В пред строкой вопроса стоял номер правильного ответа.
Каждый вопрос может иметь 5 ответов, что означает что после вопроса занят еще пять ячеек и еще одна пустая,после идет другой вопрос с ответамы и еще одна пустая ячейка.

Макрос должен из документа Word распознать правильный ответ и номер ответа вставить в калонке В:В пред каждым вопросом вставлять номер правильного ответа. В Word-е они отмечены, в документе есть заголовки в голубом шрифте они не нужны.


Р.С. (база на армянском и по этому прилагаю картинки с объяснениями)
Изображения
Тип файла: gif Безымянный1.GIF (99.5 Кб, 136 просмотров)
Тип файла: gif Безымянный.GIF (113.2 Кб, 132 просмотров)
Вложения
Тип файла: rar Закони.rar (228.4 Кб, 15 просмотров)

Последний раз редактировалось barbus; 05.05.2010 в 19:17.
barbus вне форума Ответить с цитированием
Старый 05.05.2010, 23:51   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Предупреждаю сразу,макрос очень медленный
Количество вопросов разное то 4 то 5.
Название билета не всегда жирный шрифт-это приводит к ошибке.Проверял-есть такие варианты.
Но лучше медленно.чем 5 тыс вопросов руками обработать.
в диалоге выберете нужный файл Ворд.В статус баре отображается ход обработки
Вложения
Тип файла: rar TEST.rar (24.8 Кб, 23 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.05.2010, 18:42   #3
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию

Спасибо огромное, все хорошо, есть вопросы.
Как макрос /какой код/ распознает правильный ответ, по цвету выделения?
Имеет значения цвет скажем зеленый или другой?
То что медленно не мешает.

Еще раз спасибо.
barbus вне форума Ответить с цитированием
Старый 08.05.2010, 19:58   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:

For n = 1 To .Paragraphs.Count
 gg = .Paragraphs(n).Range.Font.ColorIndex
If gg = 2 Then' если строка синего цвета пропускаем ее
Else

rez(n, 1) = Replace(.Paragraphs(n).Range.Text, Chr(13), "")
If .Paragraphs(n).Range.Font.Bold = True Then 'если строка имеет жирный шрифт-это название билета
shet = 0
 Else
 shet = shet + 1
 End If
 If .Paragraphs(n).Range.Words.First.FormattedText.HighlightColorIndex <> 0 Then' если первое слово выделено цветом то это ответ
 rez(n - shet, 2) = shet
 End If

End If
DoEvents
Application.StatusBar = n & " of " & UBound(rez)

Next
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.05.2010, 21:46   #5
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию

Спасибо за разъяснения.
Есть маленькие ошибки.Помогите исправить.

1. Ответ надо поставить на над названием билета а на одну строку вниз, перед вопросом.
2. Есть вопросы в которых есть варианты ответов
а) или 1)
б) или 2)
ц) или 3)

а),б),ц) или 1),2),3) это продолжение вопроса
и есть ответы в виде: правильный ответ вариант
ä²î. 1 а)
ä²î. 2 а) и б)
ä²î. 3 а) и ц),
ä²î. 4 ц):

Есть такое решение перед каждым ответом есть слово "ответ 1." (на армянском (ä²î. 1)) и макрос если видит слово будет считать его ответом.
Возможно так, или неправильное решение.
В таком случае все что находится в промежутке после названия билета до ответов это вопрос, и оно должно быть в одной строке Excel, чтобы счет строк был правильным.

Как я понял из макроса он каждую строку Word-a копирует в Excel в соответствующую строку.
Правильно я понял.

Еще раз спасибо за помощь.

Последний раз редактировалось barbus; 08.05.2010 в 22:41.
barbus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нуже макрос для копирования данных в новую книгу. zygon Microsoft Office Excel 11 17.04.2010 13:31
Нужна программа или макрос для печати шаблонов word с данными взятыми из таблицы EXCEL dimatz Microsoft Office Excel 3 05.03.2010 12:17
макрос для копирования строк из одной таблицы в другую IRI_NA Microsoft Office Excel 9 25.01.2010 20:55
Как написать макрос для копирования диапазонов данных с приращением Yevgen_pro Microsoft Office Excel 0 09.09.2009 16:12
Макрос для копирования knyz Microsoft Office Excel 28 11.01.2009 06:12