Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

VBA макрос для word   Найти похожие ветки 

 
Frozzen   (2005-02-25 19:24) [0]

Добрый вечер!
помогите плиз написать макрос для ворд.
я вба не знаю, а макрос необходим, текста много.
Он должен менять местами два слова разделенные запятой
Пример
2-комн, Парашютная, длхдлэжэ

Парашютная, 2-комн, длхдлэжэ


 
Cosinus ©   (2005-02-25 19:28) [1]

Должно помочь, я, например, так делаю в большинстве случаев.
1)Сервис=>макрос=>начать запись
2)Делаешь то, что тебе надо на одном-двух-трех примерах
3)Сервис=>макрос=>остановить запись
4)Анализируешь полученный макрос.
5)Пишешь свой.


 
вредитель ©   (2005-02-25 19:48) [2]

1.Если текст сплошняком, то нужно искать запятую, с пом. функции InStr$, выделять слова с пом. функции Mid$, менять слова, подсчитывать количество запятых, не меняя слова на запятой, где этого делать не нужно (например по модулю 2 (mod)).
2.Если текст в строчках, то задача упршается путем перебора коллекци Paragraphs ActiveDocument`a (у Paragraph есть .Range.Text, c помошью которого можно получить строку в нем содержащуюся). С ней поступают так, как описано в 1.


 
Frozzen   (2005-02-25 19:58) [3]

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


 
вредитель ©   (2005-02-25 20:20) [4]

Option Explicit "обязательно в начале модуля

Sub Такая_то()
" Объявляем все переменные, чтобы небыло недоразумений

" внутри цикла перебора параграфов

iCol1 = InStr$(strSearchIn$, ",") " возвращает место в строке, гле первая запятая.

" Вырезаем
strWord1$ = Left$(strSearchIn$, iCol1)

" Ищем вторую запятую
iCol2 = InStr$(iCol1 + 1, strSearchIn$, ",")

" Вырезаем
strWord2$ = Mid$(strSearchIn$, iCol1 + 1, iCol2 - iCol1 - 1)

"Клеим
strSearchIn$ = strWord2$ + strWord1$ +  Right$(strSearchIn$, Len(strSearchIn$) - iCol2)

....................

End Sub

Тк точно не помню, каким числом нумеруется первый символ в строке (0 или 1), то скорее всего будет работать с глюками и требует небольшой подправки. Справка рулит, в общем.


 
Frozzen   (2005-02-25 20:23) [5]

пасиба буду пробовать


 
Frozzen   (2005-02-25 20:59) [6]

а как организовать цикл по выделенным строкам
допустим выделил кусок и в нем обработал каждую строку


 
DiamondShark ©   (2005-02-25 21:03) [7]

Замена с регулярными выражениями.
И никаких макросов.


 
Frozzen   (2005-02-25 21:06) [8]

че то под вордом не знаю про регулярные выражения


 
DiamondShark ©   (2005-02-25 21:16) [9]

В окне "Поиск/Замена" нажать кнопочку "Больше".
Там будет флажок "Подстановочные знаки" (это и означает, что шаблоны поиска и замены будут использовать регулярные выражения).
Описание выражений есть в справке.

ЗЫ
Описание даю для Word 97.
В других версиях может быть как-то иначе.


 
вредитель ©   (2005-02-25 21:19) [10]

А можно вообще, в Ёксель попробовать импортировать, как текст разделенный запятыми, и столбцы местами поменять:)
Можно в вижлстудию скопировать и задать сл регекспы:
на поиск: {.*},{.*},{.*}
на замену: \2,\1,\3
что-то я об них запамятовал
хотя могут работать в другом редакторе, поддерживающем регекспы, справка, как всегда рулит.


 
Frozzen   (2005-02-25 21:22) [11]

макрос удобней
каждый раз вызывать замену и чето писать
не


 
Frozzen   (2005-02-25 21:25) [12]

как организовать цикл по выделенным строкам
допустим выделил кусок и в нем обработал каждую строку


 
вредитель ©   (2005-02-25 21:26) [13]

а как организовать цикл по выделенным строкам
допустим выделил кусок и в нем обработал каждую строку


For each _line in Selection.Paragraphs
 strSearchIn$ = _line.Range.Text

 ...

 _line.Range.Text = strSearchIn$
Next _line

Вроде так. Мне, если честно уже надоело. Пытаюсь вам на справку все время намекнуть.


 
DiamondShark ©   (2005-02-25 21:27) [14]


> макрос удобней
> каждый раз вызывать замену и чето писать
> не

"Чето писать" надо один раз.
А для каждого раза есть такая фича, как "записать макрос".


 
Frozzen   (2005-02-25 21:35) [15]

дык справка помогает когда хоть какито соображения есть
а так тыкаюсь незная как чего называется
все ща уже все сделаю



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
1-1110222052
ramil
2005-03-07 22:00
2005.03.20
Как сделать программу с входными параметрами


1-1109870167
ТехникПТО
2005-03-03 20:16
2005.03.20
Как работать с TStrings


1-1109918193
ser35
2005-03-04 09:36
2005.03.20
Чтение МЕМО


9-1103555406
Макс
2004-12-20 18:10
2005.03.20
vectorgeometry


3-1108478008
denis24
2005-02-15 17:33
2005.03.20
FibDataset+parameters?