Форум программистов, компьютерный форум, киберфорум
MS Office Word
Войти
Регистрация
Восстановить пароль
 
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
1

Ворд поле заменить содержит число выходящее за пределы допустимого диапазона

14.01.2021, 07:07. Просмотров 473. Ответов 19
Метки нет (Все метки)

здравствуйте, давно не пользовался-подзабыл, подскажите плиз
ставлю обычную * с Подстановочными знаками, спс
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2021, 07:07
Ответы с готовыми решениями:

Получить число, выходящее за пределы диапазона long
Постановка задачи следующая: Получить последовательность цифр dk, dk-1,...,d0 числа 2^65. ...

Аргументы имеют неверный тип, выходят за пределы допустимого диапазона
Имеется база данных Access. Есть две таблицы: "Порты" и "Устройства". В таблице "Порты" есть поля...

Ошибка аргументы имеют неверный тип выходят за пределы допустимого диапазона
Тут есть программа. При нажатие на radiogroup вылезает ошибка аргументы имеют неверный тип выходят...

Ошибка: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона
Не могу решить проблему связки таблиц. Ошибка: Аргументы имеют неверный тип, выходят за пределы...

19
680 / 395 / 132
Регистрация: 22.12.2015
Сообщений: 1,162
14.01.2021, 11:28 2
Ципихович Эндрю, ничего не понял. Что на что меняете?
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
14.01.2021, 11:49  [ТС] 3
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
Что
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
меняете
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ставлю обычную *
меняю на <sup>\1</sup>

Добавлено через 1 минуту
то есть нужно обрамить тегами, кстати звёздочка похоже каждый элемент ищет, а мне нужно группу
0
5583 / 2902 / 578
Регистрация: 23.11.2010
Сообщений: 9,604
14.01.2021, 12:30 4
На что меняете понятно, а ЧТО меняете?

Ищете что-то, а меняете на найденное, обрамленное тегами?
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
14.01.2021, 12:33  [ТС] 5
ну мне всё что есть в нижнем и верхнем индексе обрамит тегами нужно
<sub>\1</sub> и <sup>\1</sup>-в верхнем, надстрочном индексе
только не каждый знак конечно))
0
5583 / 2902 / 578
Регистрация: 23.11.2010
Сообщений: 9,604
14.01.2021, 13:05 6
Ципихович Эндрю, уважаемый, Вы же не первый день на форуме)))
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
всё что есть в нижнем и верхнем индексе
и сразу же
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
только не каждый знак
. Уж определитесь и конкретизируйте
В Найти - то что хотите найти
в Заменить на <sup>^&</sup>
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
14.01.2021, 13:07  [ТС] 7
Цитата Сообщение от Fairuza Посмотреть сообщение
В Найти - то что хотите найти
любой текст в верхнем, надстрочном индексе
Цитата Сообщение от Fairuza Посмотреть сообщение
Заменить на <sup>^&</sup>
0
5583 / 2902 / 578
Регистрация: 23.11.2010
Сообщений: 9,604
14.01.2021, 13:12 8
Ципихович Эндрю, а примерчик будет?
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
14.01.2021, 13:22  [ТС] 9
да, пожалуйста, спс
0
Вложения
Тип файла: docx 7778п989777 и 7778п989777.docx (10.7 Кб, 7 просмотров)
680 / 395 / 132
Регистрация: 22.12.2015
Сообщений: 1,162
14.01.2021, 13:31 10
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
только не каждый знак конечно))
Ну например для поиска минимум 2х символов укажите <([А-Яа-яA-Za-z0-9])*([А-Яа-яA-Za-z0-9])> а в кнопке формат → шрифт → надстрочный поставьте галку.
Если в верхнем регистре может быть один символ - тогда просто <([А-Яа-яA-Za-z0-9])> ну и формат соответственно.
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
14.01.2021, 13:39  [ТС] 11
плохо получилось.....
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 Макрос1()
'
    Найденоsup = 0
    With ActiveDocument.Range.Find
        'эта опция отвечает за поиск с использованием подстановочных знаков
        'не работает когда установлено в положение False, или её нет вообще
        'если установлена в положение True, тогда работает
        .MatchWildcards = True
        'ищем
        .Text = "([А-Яа-яA-Za-z0-9])"
        'ищем в верхнем, надстрочном индексе, html-<sup>2</sup>
        .Font.Superscript = True
        Do While .Execute = True
            'выделить найденное
            '.Parent.Select
            Найденоsup = Найденоsup + 1
        Loop
        .Replacement.Text = "<sup>\1</sup>"
        .Execute Replace:=wdReplaceAll
    End With
 
    MsgBox "jj"
 
End Sub
0
5583 / 2902 / 578
Регистрация: 23.11.2010
Сообщений: 9,604
14.01.2021, 13:46 12
Вот для приложенного примера
Найти ?{5}
Заменить на <sup>^&</sup>
1
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
14.01.2021, 16:27  [ТС] 13
вероятно нужно через instr макросом делать-надёжней

Добавлено через 2 часа 32 минуты
подскажите как попроще обернуть в теги?
если макрос:

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
25
26
27
28
29
Sub Макрос1()
 
    Найденоsub = 0
    With ActiveDocument.Range(Start:=SStart, End:=ActiveDocument.Range.End).Find
        'эта опция отвечает за поиск с использованием подстановочных знаков
        'не работает когда установлено в положение False, или её нет вообще
        'если установлена в положение True, тогда работает
        .MatchWildcards = True
        'ищем
        .Text = "*"
        'ищем в нижнем, подстрочном индексе, html-<sub>2</sub>
        .Font.Subscript = True
        Do While .Execute = True
            'выделить найденное
            '.Parent.Select
            Найденоsub = Найденоsub + 1
            Debug.Print ".Parent.Start " & Найденоsub & "-" & .Parent.Start
            'Exit Do
        Loop
    End With
 
    Debug.Print "Найденоsub: " & Найденоsub
    MsgBox "11"
 
    If Найденоsub <> 0 Then
 
    End If
 
End Sub
по окончании выдал ответ
.Parent.Start 1-13
.Parent.Start 2-14
.Parent.Start 3-15
.Parent.Start 4-16
.Parent.Start 5-17
.Parent.Start 6-61
.Parent.Start 7-62
.Parent.Start 8-63
.Parent.Start 9-64
.Parent.Start 10-65
.Parent.Start 11-66
.Parent.Start 12-67
.Parent.Start 13-68
.Parent.Start 14-69
.Parent.Start 15-70
Найденоsub: 15
спс
0
680 / 395 / 132
Регистрация: 22.12.2015
Сообщений: 1,162
15.01.2021, 16:46 14
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вероятно нужно через instr макросом делать-надёжней
Ципихович Эндрю, в вашем примере пробелов, условных плюсов и дефисов в надстрочном и подстрочном тексте нет (если по факту их нет - поменяйте перед обработкой пробелы например на #, а потом замените их обратно, то же самое с плюсами и дефисами).
Дальше делаете четыре замены в подстрочном/надстрочном тексте - указываю запросы с кавычками для наглядности, они разумеется не нужны:
1. "*" на "+^&-"
2. "-+" на ""
3. "+" на "<sup>"
4. "-" на "</sup>"
После этого вы неминуемо получаете свой результат.
Единственно + и - использовать при подстановочных знаках не получится, выберите свои символы, не задействованные в Word.
Хотите быстрее - конкретизируйте число символов подряд и ищите по маске:
Цитата Сообщение от Fairuza Посмотреть сообщение
Найти ?{5}
Заменить на <sup>^&</sup>
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
15.01.2021, 16:49  [ТС] 15
спс сделал макросом
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
'
Function FunctionВыяснить_наличие_текста_с_подстрочным_и_надстрочным_индексом(sub_sup, Найденоsub_sup, flName)
'
    Найденоsub_sup = 0
    Найденоsub_sup_all = ""
    Найденоsub_sup_all_start_end = ""
    With ActiveDocument.Range.Find
        'эта опция отвечает за поиск с использованием подстановочных знаков
        'не работает когда установлено в положение False, или её нет вообще
        'если установлена в положение True, тогда работает
        .MatchWildcards = True
        'ищем
        .Text = "*"
        If sub_sup = "sub" Then
            'ищем в нижнем, подстрочном индексе, html-<sub>2</sub>
            .Font.Subscript = True
        ElseIf sub_sup = "sup" Then
            'ищем в верхнем, надстрочном индексе, html-<sup>2</sup>
            .Font.Superscript = True
        End If
        Do While .Execute = True
            'выделить найденное
            '.Parent.Select
            Найденоsub_sup = Найденоsub_sup + 1
            Найденоsub_sup_all = Найденоsub_sup_all & .Parent.Start & ";"
        Loop
    End With
 
    If Найденоsub_sup <> 0 Then
        FunctionТекст_с_подстрочным_и_надстрочным_индексом_обрамить_тегами sub_sup, Найденоsub_sup_all, Найденоsub_sup_all_start_end, flName
    End If
    '
End Function
'
Function FunctionТекст_с_подстрочным_и_надстрочным_индексом_обрамить_тегами(sub_sup, Найденоsub_sup_all, Найденоsub_sup_all_start_end, flName)
'
    Найденоsub_sup = 0
    Найденоsub_sup_all_array = Split(Найденоsub_sup_all, ";")
    Найденоsub_sup_all_start_end = Найденоsub_sup_all_start_end & Найденоsub_sup_all_array(0) & ";"
    For w = 1 To UBound(Найденоsub_sup_all_array) - 1
        If Найденоsub_sup_all_array(w) - Найденоsub_sup_all_array(w - 1) <> 1 Then Найденоsub_sup_all_start_end = Найденоsub_sup_all_start_end & Найденоsub_sup_all_array(w - 1) & ";" & Найденоsub_sup_all_array(w) & ";"
    Next
 
    Найденоsub_sup_all_start_end = Найденоsub_sup_all_start_end & Найденоsub_sup_all_array(UBound(Найденоsub_sup_all_array) - 1)
    Найденоsub_sup_all_start_end_array = Split(Найденоsub_sup_all_start_end, ";")
 
    For w = 0 To UBound(Найденоsub_sup_all_start_end_array) Step 2
        Найденоsub_sup = Найденоsub_sup + 1
        ActiveDocument.Range( _
                Start:=Найденоsub_sup_all_start_end_array(w), _
                End:=Найденоsub_sup_all_start_end_array(w + 1) + 1).Bookmarks.Add Name:="Найденоsub_" & Найденоsub_sup
    Next
 
    For w = 1 To Найденоsub_sup
        ActiveDocument.Bookmarks("Найденоsub_" & w).Range.Text = "<" & sub_sup & ">" & ActiveDocument.Bookmarks("Найденоsub_" & w).Range.Text & "</" & sub_sup & ">"
    Next
 
    If sub_sup = "sub" Then
        ''''
        Найденоsub = Найденоsub_sup
        MsgBox$ "В тексте обнаружен текст в нижнем, подстрочном индексе" & vbCr & _
                "количество совпадений: " & Найденоsub_sup & vbCr & _
                "файл: " & flName
    ElseIf sub_sup = "sup" Then
        ''''
        Найденоsup = Найденоsub_sup
        MsgBox$ "В тексте обнаружен текст в нижнем, подстрочном индексе" & vbCr & _
                "количество совпадений: " & Найденоsub_sup & vbCr & _
                "файл: " & flName
    End If
    '
End Function
0
5583 / 2902 / 578
Регистрация: 23.11.2010
Сообщений: 9,604
15.01.2021, 17:54 16
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
+ и - использовать
^= это тире, а вот с "+" можно попробовать его скопировать в буфер и использовать ^c
Не пробовала сама)
1
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
16.01.2021, 09:17  [ТС] 17
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
MsgBox$ "В тексте обнаружен текст в нижнем, подстрочном индексе" & vbCr & _
в 67 строке нужно поправить на "верхнем надстрочном"
0
5537 / 1339 / 148
Регистрация: 08.02.2009
Сообщений: 4,067
Записей в блоге: 30
23.01.2021, 21:57 18
Вот такой вариант на основе темы sn_88 Обработка текста из Word в код HTML — только для монолитных* индексов.
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 SupSub_HTML()
'Static me_ready As Boolean: If me_ready Then me_ready = False: Stop
Static me_ready As Boolean: If me_ready Then Exit Sub 'выше — отладочный шаг
 
With Selection.Find
    .Text = "(*>)" ' это искомый текст (кончается любым разделителем слов)
    .Font.Superscript = True
    .Replacement.Font.Superscript = True ' обрамляя тегами, оставим формат как был
    .Replacement.Text = "<sup>\1</sup>" ' это теги superscript-выделений
    .Wrap = wdFindContinue
    .MatchWildcards = True
    .Execute Replace:=wdReplaceAll
    
' далее занимаемся нижним (подстрочным) индексом
    .Font.Subscript = True
    .Replacement.Font.Subscript = True ' заменяем опять же на нижний
    .Replacement.Text = "<sub>\1</sub>" ' "одеваем" его в теги subscript-выделений
    .Wrap = wdFindContinue
    .Execute Replace:=wdReplaceAll
    
    .MatchWildcards = False
End With
    me_ready = True ' защита от повторного выполнения в уже обработанном файле
End Sub
Полюбуйтесь там заодно универсальным подходом ViterAlex’а, процедурой MakeHTML()!

А знатокам (вернее, знайкам!) любопытны, думаю, будут и разработки Dragokas’а: http://www.cyberforum.ru/vba/thread671270.html#4

ЗЫ: в рисунках сырые версии — особо не вчитывайтесь.
__________
* то есть без разделителей внутри — типа Ak,g
0
Миниатюры
Ворд поле заменить содержит число выходящее за пределы допустимого диапазона   Ворд поле заменить содержит число выходящее за пределы допустимого диапазона   Ворд поле заменить содержит число выходящее за пределы допустимого диапазона  

1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
24.01.2021, 12:37  [ТС] 19
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
"(*>)" ' это искомый текст (кончается любым разделителем слов)
соль, +++ спс, честно сказать я сам в ужасе, от того, что у меня получилось))
0
1445 / 353 / 32
Регистрация: 10.04.2009
Сообщений: 6,396
24.01.2021, 19:47  [ТС] 20
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
"(*>)" ' это искомый текст (кончается любым разделителем слов)
а всё учтено
1 просто пробел
2 ^s Nonbreaking space (°) Неразрываемый пробел (°), ставится одновременным нажатием CTRL+SHIFT+SPACEBAR, SPACEBAR это пробел
3 ^~ Nonbreaking hypen (-) Неразрываемый дефис (-)
4 ^- Optional hypen (¬) Мягкий перенос (¬)

??? Ворд та ещё штучка
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2021, 19:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка при сортировке AdoTable ' Аргументы имеют неверный тип, выходят за пределы допустимого диапазона.'
Необходимо сортировать записи в таблице по столбцу 'Номер поезда'. Использовались такие компоненты...

Ошибка: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт
Уважаемые программисты прошу вас помогите мне пожалуйста.Я создаю программу в Delphi которая...

Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом
Доброго времени суток! Пытаюсь установить на таблицу (ADOTable) фильтр ...

AddNew приводит к ошибке Ошибка 800a0bb9 Аргументы имеют неверный тип, выходят за пределы допустимого диапазона ..
Вопрос возможно уже всем тут надоел, но я ничего подобного поиском не нашел... Нужен AddNew. Делаю...

“3001: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом”.
Когда я открываю некоторую таблицу, то получаю Recordset, у которого поля имеют тип...

"Аргументы имеют неверный тип, выходят за пределы допустимого диапазона"
var s:string; begin s:=InputBox(‘Поиск’,Введите название''); if s&lt;&gt;''then begin ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.