1 / 1 / 0
Регистрация: 28.01.2015
Сообщений: 57
1

Replacement заменяет только последнее совпадение

14.05.2018, 06:26. Показов 1313. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите, пожалуйста, почему код заменят только данные введенные в переменную "НомерДоговора" а "DateDogovora" игнорирует?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub my_replace()
Dim DateDogovora As String
Dim НомерДоговора As String
DateDogovora = InputBox("Введите дату договора")
НомерДоговора = InputBox("Введите номер договора")
 
Selection.Find.Text = "ДД.ММ.ГГГГ"
Selection.Find.ClearFormatting
 
Selection.Find.Replacement.Text = DateDogovora
Selection.Find.Replacement.ClearFormatting
 
 
Selection.Find.Text = "ПРЭС-ГГ-XXXXX"
Selection.Find.ClearFormatting
 
Selection.Find.Replacement.Text = НомерДоговора
Selection.Find.Replacement.ClearFormatting
 
 
 
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2018, 06:26
Ответы с готовыми решениями:

Регулярка (последнее совпадение)
Помогите с регуляркой, нужно убрать все после последнего слеша и слеш тоже. исходная строка:...

UPDATE только первое совпадение
Есть бд, выполняю запрос: $query8 = mysql_query("UPDATE task SET active=1 WHERE userid='$id'")...

Только точно совпадение по регулярному выражению
Есть строка которую нужно проверить на точное совпадение от начала строки до ее конца. Строка вида...

Регулярка выводит только первое совпадение
Здравствуйте подскажите где ошибка регуляркой ищу текст $pattern =...

8
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
14.05.2018, 06:33 2
Цитата Сообщение от Евгений М Посмотреть сообщение
Selection.Find.Text = "ДД.ММ.ГГГГ"
В тексте так и есть - "ДД.ММ.ГГГГ" ?
0
Модератор
Эксперт MS Access
11956 / 4824 / 779
Регистрация: 07.08.2010
Сообщений: 14,128
Записей в блоге: 4
14.05.2018, 06:35 3
Лучший ответ Сообщение было отмечено Евгений М как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub my_replace()
Dim DateDogovora As String
Dim НомерДоговора As String
DateDogovora = InputBox("Введите дату договора")
НомерДоговора = InputBox("Введите номер договора")
 
Selection.Find.Text = "ДД.ММ.ГГГГ"
Selection.Find.ClearFormatting
 
Selection.Find.Replacement.Text = DateDogovora
Selection.Find.Replacement.ClearFormatting
 
Selection.Find.Execute Replace:=wdReplaceAll
 
Selection.Find.Text = "ПРЭС-ГГ-XXXXX"
Selection.Find.ClearFormatting
 
Selection.Find.Replacement.Text = НомерДоговора
Selection.Find.Replacement.ClearFormatting
 
 
 
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
2
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
14.05.2018, 06:37 4
Лучший ответ Сообщение было отмечено Евгений М как решение

Решение

Цитата Сообщение от Евгений М Посмотреть сообщение
Selection.Find.Execute Replace:=wdReplaceAll
Это попробуйте добавить после 11-ой строки.

Не по теме:


Галина опередила :)

1
1 / 1 / 0
Регистрация: 28.01.2015
Сообщений: 57
14.05.2018, 07:19  [ТС] 5
Большое спасибо! Получилось!

Добавлено через 38 минут
Подскажите еще. Почему редактор выделяет красным цветом строку "my_rep_fun(ДатаДоговора, "ДД.ММ.ГГГГ")"?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function my_rep_fun(textreplace As String, args As String)
    Selection.Find.Text = textreplace
    Selection.Find.ClearFormatting
    
    Selection.Find.Replacement.Text = args
    Selection.Find.Replacement.ClearFormatting
    
    Selection.Find.Execute Replace:=wdReplaceAll
End Function
 
 
Sub my_replace()
Dim DateDogovora As String
Dim НомерДоговора As String
ДатаДоговора = InputBox("Введите дату договора")
НомерДоговора = InputBox("Введите номер договора")
my_rep_fun(ДатаДоговора, "ДД.ММ.ГГГГ")
End Sub
0
Модератор
Эксперт MS Access
11956 / 4824 / 779
Регистрация: 07.08.2010
Сообщений: 14,128
Записей в блоге: 4
14.05.2018, 07:23 6
должно быть
либо
Visual Basic
1
my_rep_fun ДатаДоговора, "ДД.ММ.ГГГГ"
либо
Visual Basic
1
CALL my_rep_fun(ДатаДоговора, "ДД.ММ.ГГГГ")
0
1 / 1 / 0
Регистрация: 28.01.2015
Сообщений: 57
14.05.2018, 07:33  [ТС] 7
my_rep_fun ДатаДоговора, "ДД.ММ.ГГГГ" - так код не работает, хотя и ошибок не показывает.
CALL my_rep_fun(ДатаДоговора, "ДД.ММ.ГГГГ") - так редактор подсвечивает желтым цветом "Sub my_replace()"
0
Модератор
Эксперт MS Access
11956 / 4824 / 779
Регистрация: 07.08.2010
Сообщений: 14,128
Записей в блоге: 4
14.05.2018, 07:42 8
Лучший ответ Сообщение было отмечено Евгений М как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub my_rep_fun(textreplace As String, args As String)
 
    Selection.Find.Text = textreplace
    Selection.Find.ClearFormatting
    
    Selection.Find.Replacement.Text = args
    Selection.Find.Replacement.ClearFormatting
    
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
 
 
Sub my_replace()
Dim ДатаДоговора As String
Dim НомерДоговора As String
ДатаДоговора = InputBox("Введите дату договора", , Date)
НомерДоговора = InputBox("Введите номер договора", , 1111)
''да и текст , в котором надо что-то заменить, [B]должен[/B] быть выделен(или раскомменчена cлед строка)
Word.ActiveDocument.Select
Call my_rep_fun("ДД.ММ.ГГГГ", ДатаДоговора)
Call my_rep_fun("ПРЭС-ГГ-XXXXX ", НомерДоговора)
 
End Sub
1
1 / 1 / 0
Регистрация: 28.01.2015
Сообщений: 57
14.05.2018, 23:46  [ТС] 9
Большое спасибо! Код замечательно работает и облегчает монотонную работу.
0
14.05.2018, 23:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2018, 23:46
Помогаю со студенческими работами здесь

OuterHTML заменяет только один элемент
Столкнулся с разрывом мозга, не понимаю, почему так происходит. Имеется код: <html> <head> <meta...

Почему string.match возвращает только одно совпадение ?
'ZzZ'.match(new RegExp(/zz/,'gi'))

Как корректно работает FindNext (ищется только первое совпадение)
Доброе время суток. Подскажите, пожалуйста. Есть два листа с данными. На первом список ячеек, на...

выводит только последнее
стараюсь тут доделать в общем одномерный массив разбил формулу на две а1 первая а2 вторая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru