0
- 28.02.2018 - 20:14
|
В нормальных средах программирования есть директивы препроцессора типа #define ABCD ..... ..... ..... #ifdef ABCD kusok koda #else kusok koda2 #endif Вопрос - есть ли нечто подобное в ворде, чтобы по условию включать в документ нужные куски кода | | |
1
- 28.02.2018 - 20:18
|
Лично я как то не озадачивался таким, нужды не было В скрипте запиши что нибудь Отредактировано nordbox; 28.02.2018 в 20:22. Причина: лишнее | | |
2
- 28.02.2018 - 20:23
|
Меня как то озадачивали еще в самом начале нулевых идиотской задачей: Нужно было что бы вордовский док попал клиенту, он его открыл, прочитал и после закрытия там ничего не было внутри, т.е. удалялось содержимое и при втором открытии тупо пустой лист ))) | | |
3
- 28.02.2018 - 20:47
| (2) у нас был такой хитроЖ..й поставщик с закидонами, его быстренько обломали на нормальные документы. | | |
4
- 28.02.2018 - 20:49
|
в ворде есть оператор IF THEN ELSE но он несколько не так как требуется работает | | |
5
- 28.02.2018 - 21:07
|
Ну вот и я о том же заказчику такой задумки сказал )) Ну сделать, то я сделал, показал, есть то хочется, но потом похоже заказчика тоже обломали с такими фортелями )) А чем тебе IF THEN ELSE не нравится? | | |
6
- 28.02.2018 - 21:34
| мне надо вставлять целые абзацы и даже отдельные главы. Вроде этот оператор такого не позволяет... Хотя буду смотреть дальше | | |
7
- 28.02.2018 - 21:47
|
Cut, Past Не то? | | |
8
- 28.02.2018 - 21:50
| Если условие выполняется, вырезаешь, вставляешь, если нет другое ставишь, попробуй просто именно записать макрос, а там сообразишь что и как. | | |
9
- 01.03.2018 - 12:54
| не то. | | |
10
- 01.03.2018 - 13:37
| В microsoft visial basic все это есть. Что не получается? | | |
11
- 13.03.2018 - 12:08
| (10) есть для кода, а мне нужно для текста документа Word | | |
12
- 13.03.2018 - 13:38
| 11-Helen1986 > Код для кода? :) Напиши что нужно сделать. | | |
13
- 13.03.2018 - 14:36
|
(12) нужно аналогично директивам условной трансляции для исходного кода программы вставлять куски текста (большие, от абзаца до отдельной главы) в текст документа word т.е. если есть директива типа #define glava_123? то в текст документа вставляется нужная глава (неважно откуда, из файла или она уже есть в документе. Второе условие - должно работать форматирование текста по стилям) | | |
14
- 13.03.2018 - 14:46
|
смысл всего этого - есть общая часть приборов (ну типа мат платы, которая оснащается разным набором датчиков - получаем разные модели приборов. Мат плата постоянно модернизируется из-за смены комплектующих и развития, уже задолбались поддерживать актуальные описания в документации на каждый прибор. Приходится постоянно таскать куски теста из докумета в документ, а так как приборов довольно много - муторно и много затрат на актуальность. Программа прошивки на самом деле одна, с директивами условной трансляции, все отлажено (язык программирования - С), внешняя программа на дельфях, тоже одна, тоже с условной компиляцией, тоже нет проблем | | |
15
- 13.03.2018 - 14:54
|
Ну так вставляем в текст #define glava_123. Начинаем запись макроса и получаем Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "#define glava_123" .Replacement.Text = "Много текста из Война и мир" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With | | |
16
- 13.03.2018 - 14:56
| В макросе записывали ctr+H. | | |
17
- 13.03.2018 - 15:19
|
до этого я и сама дошла это РУЧНАЯ замена... не пойдет, ибо непригодно. хотелось бы расставить директивы - а потом зашел в голову, поправил одну директиву и получил нужный текст. А так ползать по 80 страницам и вручную править... и чем это лучше | | |
18
- 13.03.2018 - 15:55
|
Как соотноситься с Для автоматического заполнения в любом случае нужно сопоставление КодПараграфа - Текст параграфа. Я бы сделал так: Создаем документ в котором каждый абзац - описание нужного датчика. Абзац начинаем уникальным символом (#Glava123). Создаем макрос, который: 1. Создает новый документ 2. Запрашивает список нужных абзацев (можно вносить в документ) 2. перебирает все абзацы "большого" документа и если заголовок совпадает с нужным - копирует абзац в новый документ | | |
19
- 13.03.2018 - 16:06
|
With ActiveDocument Set Ps = .Paragraphs End With For Each P In Ps i = i + 1 If Ps(i).Range.Text Like "*glava123*" Then Либо добавляем в новый документ либо удаляем End If Next | | |
20
- 13.03.2018 - 22:35
| (19) слишком много ручной работы - это нужны квалифицированные эксплуатанты, которых нет. Нам бы чего нибудь попроще | | |
21
- 14.03.2018 - 08:32
| Цитата:
Написать инструкцию в которой будет: Если у вас датчик такой то.... если такой то ..... | | |
22
- 14.03.2018 - 11:14
| попробую. Но странно, что в таком навороченном продукте, как офис, такого не предусмотрено | |
| Интернет-форум Краснодарского края и Краснодара |