Форум: "Потрепаться";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c