Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Вопрос- ответ. Поставить по алфавиту.

Ответить
Настройки темы
2010 - Вопрос- ответ. Поставить по алфавиту.

Аватара для cher

ветеринар


Сообщения: 1509
Благодарности: 168


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: cher
Дата: 21-09-2018
Есть такая задачка......
Вопросник - ответник. Надо вопросы отсортировать по алфавиту(так чтоб ответы "прикреплялись" к своим ответам)
Помню как то делал разок при помощи абзац-сортировка по алфавиту.
Но тут трудности. Документов много и они объемные(выделять замучаешься)- и как к ним прикрепить ответы не понятно....
+ Перед каждой строкой стоит Вопрос , Ответ(как их игнорировать тоже не знаю)
Варианты прикрепляю.....
как есть-

как примерно надо -

..Вопрос -Ответ убрал.... как бы далее?

Отправлено: 21:49, 15-05-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


cher, примерно так:
Код: Выделить весь код
Option Explicit

Sub ReformatDocument()
    Const strQuestionTag = "ВОПРОС - "
    Const strAnswerTag = "ОТВЕТ - "
    
    Dim objParagraph As Paragraph
    Dim objDocument As Document
    Dim objRange As Range
    
    
    Set objDocument = Application.Documents.Add()
    Set objRange = objDocument.Range
    
    For Each objParagraph In ThisDocument.Content.Paragraphs
        If Trim(objParagraph.Range.Text) = vbCr Then
            ' Nothing to do
        ElseIf Left(objParagraph.Range.Text, Len(strQuestionTag)) = strQuestionTag Then
            With objRange
                .InsertAfter Mid(objParagraph.Range.Text, Len(strQuestionTag) + 1)
                .Bold = True
                .Collapse wdCollapseEnd
            End With
        ElseIf Left(objParagraph.Range.Text, Len(strAnswerTag)) = strAnswerTag Then
            With objRange
                .InsertAfter Mid(objParagraph.Range.Text, Len(strAnswerTag) + 1)
                .Bold = False
                .Collapse wdCollapseEnd
            End With
        End If
    Next
End Sub
Вставьте данный код в модуль «ThisDocument» документа и выполните его. Получите новый документ потребного вида.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:33, 16-05-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для cher

ветеринар


Сообщения: 1509
Благодарности: 168

Профиль | Сайт | Отправить PM | Цитировать


Iska, Огромное спасибо!
Но я раньше с макросами не работал, даже не знаю как правильно... не подскажете?
Делаю так :
1- Открываю нужный документ
2- Макросы- создать
3- Вставляю приведенный вами скрипт в окно
4 - Жму значок записи(Runsub/UserForm)
5- У меня открывается еще один пустой документ word
6- Навожу на ThisDocument - жму Run Macro далее run... открывается еще один документ(пустой).
7- В пустой документ копирую текст - Макросы -выполнить. Опять пустой документ.

... вроде как что то получилось, но не по алфавиту.

-------
Коми форум


Последний раз редактировалось cher, 16-05-2012 в 07:35.


Отправлено: 07:15, 16-05-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата cher:
Делаю так :
1- Открываю нужный документ
»
Смотрите здесь: Начало работы с VBA в Word 2010, начиная отсюда:
Цитата:

Работа в редакторе Visual Basic

Макросы для Word пишутся на языке программирования Visual Basic for Applications (VBA).

Макросы создаются в компоненте Word, который большинство пользователей никогда не видят, — в редакторе Visual Basic (VBE). Открыть редактор Visual Basic можно одним из указанных ниже способов.

* Нажмите сочетание клавиш ALT + F11
и т.д. Код Вам будет нужно поместить именно в сам документ (несмотря на то, что указанная статья сие не рекомендует), в модуль «ThisDocument».

P.S. После того, как код у Вас заработает на одном, выложенном Вами документе, поговорим более подробно про:
Цитата cher:
Документов много и они объемные »
и как с этим лучше поступить.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:55, 16-05-2012 | #4


Аватара для cher

ветеринар


Сообщения: 1509
Благодарности: 168

Профиль | Сайт | Отправить PM | Цитировать


Iska, Ок!
Цитата Iska:
Смотрите здесь: Начало работы с VBA в Word 2010, начиная отсюда: »
Это я смотрел , но "вскользь" т.к у меня не сработало
Цитата Iska:
Нажмите сочетание клавиш ALT + F11 »
Из за этого я и пошел в наглую в макросы.....
Добьюсь нужного результата/отсутствие оного- отпишусь.
Спасибо за поддержку!

-------
Коми форум


Отправлено: 21:01, 16-05-2012 | #5



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Вопрос- ответ. Поставить по алфавиту.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Вопрос-ответ 1.0 OSZone Software Новости программного обеспечения 0 16-09-2010 11:30
Конкурс «Вопрос – Ответ – Приз!» на OSZone.net! (завершен) Vadikan О сайте и форуме 27 05-11-2009 16:55
Вопрос ...как Samba na freeBSD 5.3 поставить ? andragen Общий по FreeBSD 9 04-11-2005 17:13
Вопрос-ответ leonid Хочу все знать 2 21-09-2002 09:02
Проводник, ТИПы files по алфавиту AlexeyS Microsoft Windows 95/98/Me (архив) 2 14-02-2002 19:54




 
Переход