|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.07.2010, 00:35 | #1 |
Регистрация: 11.07.2010
Сообщений: 5
|
Word. Расставить случайные числы в начале абзаца
Всем Привет!
Возникла необходимость написать простенький макрос, может кто подскажет. Существует текст, состоящий из нескольких абзацев. Нужно расставить случайные числа (целые в заданном диапазоне) в начале каждого абзаца, за исключением абзацев, начинающихся с символов "#$%". Расстановка по сочетанию клавиш, то есть каждый абзац обрабатывается нажатием клавиш. Единственная тонкость - случайные числа соседних абзацев должны быть разные (абзац "#$%" выступает как любая другая цифра). Диапазон случайных чисел можно задать в любом формате в начале документа. Пример. Существующий файл: Абзац1 Абзац2 Абзац3 #$%Абзац4 Абзац5 Абзац6 #$%Абзац7 Абзац8 Файл после обработки: 1Абзац1 4Абзац2 3Абзац3 #$%Абзац4 5Абзац5 8Абзац6 #$%Абзац7 4Абзац8 На данном этапе сейчас дошел только до того, что генерирует случайные числа в заданном диапазоне и ставит в начало абзаца. А переходы с сравнением предыдущей цифры пока не получаются. Заранее спасибо. |
12.07.2010, 01:14 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
просто совет (как вариант) сразу нагенерите чисел с запасом так, чтобы соседние отличались. Сохраните их в массив (или в коллекцию). А потом доставайте по очереди по мере необходимости..
p.s. в программирования на VBA под Word не силён, поэтому конкретным кодом не могу помочь... |
12.07.2010, 06:59 | #3 |
Регистрация: 11.07.2010
Сообщений: 5
|
ИМХО, таким образом не совсем оптимально будет - дольше и памяти больше нужно. Тут алгоритм прозрачен, но возникают сложности с синтаксисом, так как напрямую с VBA очень мало имел дело.
|
12.07.2010, 10:45 | #4 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Погодите, Вам же нужно, чтобы не совпадали цифры в текущем и предыдущем абзацах?! Так допустимо? : Цитата:
Цитата:
|
|||
12.07.2010, 11:40 | #5 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Так подойдёт?
Код:
Лучше день потерять — потом за пять минут долететь!©
|
14.07.2010, 13:33 | #6 |
Регистрация: 11.07.2010
Сообщений: 5
|
Спасибо за код, работает моментально, единственный момент, там по комбинации клавиш нужна одна цифра в начале абзаца, затем курсор ставится на начало следующего. Цикл убрал, курсор перевел, но по нажатию клавиш цифра ставится каждый раз в начало первого абзаца. Не подскажите синтаксис как переменной "opar" присваивать текущий параграф?
|
14.07.2010, 13:40 | #7 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Код:
Лучше день потерять — потом за пять минут долететь!©
|
14.07.2010, 13:50 | #8 |
Регистрация: 11.07.2010
Сообщений: 5
|
Супер, спасибо. Попробую. Надеюсь доделать дальше сам.
|
14.07.2010, 23:57 | #9 |
Регистрация: 11.07.2010
Сообщений: 5
|
Попробовал. Не получилось сделать, не хочет работать так, как нужно Никак не хочет делать вот такой алгоритм:
Курсор находится в начале любого абзаца Нажимается сочетание клавиш, вызывающих данную подпрограмму. Если: начало текущего абзаца "#$%", переход к началу следующего абзаца, генерация числа, переход к началу следующего абзаца -> конец подпрограммы Иначе: смотрим предыдущий абзац Если: в начале "#$%", то генерация числа в текущем абзаце, переход к следующему абзацу -> конец подпрограммы Иначе: запоминаем номер в начале предыдущего абзаца, в текущем генерируем число, отличное от него, переход к следующему абзацу -> конец подпрограммы Конец если Конец если Заранее спасибо Последний раз редактировалось Maxxusha; 15.07.2010 в 00:04. |
16.07.2010, 20:55 | #10 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Алгоритм неверный.
Цитата:
Думай дальше. Или опиши подробнее, что ты хочешь. Ставить случайное число в начале текущего абзаца, а если в начале текущего абзаца стоят символы "#$%", то число вставлять в следующий?
Лучше день потерять — потом за пять минут долететь!©
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Расставить пробелы | dukesoteg | Помощь студентам | 0 | 10.06.2010 18:30 |
Символ абзаца | Dmittrii | Microsoft Office Word | 3 | 17.03.2009 12:13 |
Символ абзаца Word 2003 | dreack | Microsoft Office Word | 5 | 01.03.2009 14:17 |
взаимно простое числы | Cantana | Помощь студентам | 4 | 07.03.2008 08:46 |
Задача на длинные числы | molodzo | Помощь студентам | 1 | 21.11.2007 11:23 |