Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
6-1105641903
volser
2005-01-13 21:45
2005.03.20
Разрыв соединения сети


14-1109743450
Чеширский_Кот
2005-03-02 09:04
2005.03.20
Фальшь и неискренность


3-1108905629
Sergeant ///
2005-02-20 16:20
2005.03.20
Параметр LookupCombobox


1-1110222402
ser35
2005-03-07 22:06
2005.03.20
Как отобразить текст?


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский