Форум программистов, компьютерный форум, киберфорум
MS Office Word
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/152: Рейтинг темы: голосов - 152, средняя оценка - 4.92
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102

Обратная нумерация списка

20.05.2011, 02:33. Показов 33859. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
возможна ли в MS Word обратная нумерация списка, скажем - от 10 до 0?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2011, 02:33
Ответы с готовыми решениями:

Обратная нумерация страниц
Подскажите, пожалуйста, кто знает, как можно сделать в ворде обратную нумерацию страниц? знаю, что можно точно, а вот как......... ...

В нумерация списка вместо номера черный прямоугольник?
Здравствуйте! неподскажите пожалуйста есть ли решение такой проблемы у меня в месте нумерации появляется черный прямоугольник в...

Несквозная нумерация многоуровневого списка word 2010
Здравствуйте. В моем документе в Word используются многоуровневые списки с нумерацией. Вид нумерации такой: 1 1.1 1.1.1 и т.д....

35
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
28.05.2011, 18:48  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Busine2009 Посмотреть сообщение
diletant2,
с первого раза может не получиться посмотреть коды полей (тяжело выделить в ячейке поле).
Чтобы увидеть код, нужно выделить серое. Для этого нужно сделать следующее:
  1. поставьте курсор слева от серого;
  2. нажмите на клавиатуре и удерживайте клавишу Ctrl;
  3. нажмите на клавиатуре клавишу Стрелка вправо столько раз, чтобы полностью выделить число.
да как-то все-ранво очень много разных действий: хотелось бы все в один макрос и на хоткей, как-то так
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
28.05.2011, 19:08
diletant2,
обрабатывается первая таблица в активном документе, первый столбец.
Расчёт будет опираться на число, находящееся в первой ячейке.
Это число надо ввести вручную, а затем запустить этот макрос.

Макрос:
Visual Basic
1
2
3
4
5
6
7
8
9
Sub P1()
Dim i As Long
With ActiveDocument.Tables(1)
    For i = 2 To .Rows.Count Step 1
        .Cell(i, 1).Range.Text = Val(.Cell(i - 1, 1).Range.Text) - 1
    Next i
End With
MsgBox "Работа макроса завершена", vbInformation
End Sub
1
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
28.05.2011, 20:01  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
diletant2,
Расчёт будет опираться на число, находящееся в первой ячейке.
Это число надо ввести вручную, а затем запустить этот макрос.

Макрос:
Visual Basic
1
2
3
4
5
6
7
8
9
Sub P1()
Dim i As Long
With ActiveDocument.Tables(1)
    For i = 2 To .Rows.Count Step 1
        .Cell(i, 1).Range.Text = Val(.Cell(i - 1, 1).Range.Text) - 1
    Next i
End With
MsgBox "Работа макроса завершена", vbInformation
End Sub
неплохо, но лучше, чтобы в выделенную ячейку (там, где курсор) вставлялся 0, а затем уже вверх и вниз (с минусом) в зависимости от количества строк
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
28.05.2011, 20:17
Код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub P1()
Dim i As Long
'Вставляем в первую ячейку число с таким расчётом,
'чтобы в ячейке, где находится курсор, оказался ноль.
Selection.Tables(1).Cell(1, 1).Range.Text = Selection.Cells(1).RowIndex - 1
'Расставляем остальные числа.
With Selection.Tables(1)
    For i = 2 To .Rows.Count Step 1
        .Cell(i, 1).Range.Text = Val(.Cell(i - 1, 1).Range.Text) - 1
    Next i
End With
MsgBox "Работа макроса завершена", vbInformation
End Sub
1
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
28.05.2011, 22:02  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
"Код:"]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub P1()
Dim i As Long
'Вставляем в первую ячейку число с таким расчётом,
'чтобы в ячейке, где находится курсор, оказался ноль.
Selection.Tables(1).Cell(1, 1).Range.Text = Selection.Cells(1).RowIndex - 1
'Расставляем остальные числа.
With Selection.Tables(1)
    For i = 2 To .Rows.Count Step 1
        .Cell(i, 1).Range.Text = Val(.Cell(i - 1, 1).Range.Text) - 1
    Next i
End With
MsgBox "Работа макроса завершена", vbInformation
End Sub
охренеть! можете к коду дать подробные комменты - что как работает?
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
28.05.2011, 22:57
Комментарии:
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
73
74
75
76
77
78
Sub P1()
'С помощью Dim создаём в оперативной памяти компьютера поименованную
'область (переменную) i. Имя i принято использовать в циклах.
'В данном случае переменная используется,
'чтобы пройтись по всем ячейкам первого столбца.
'Ниже я покажу, как переменная используется.
'Long - означает, что в переменной i могут быть только числа и
'при том только целые (есть ещё дробные). На данном этапе вашего
'знания VBA не заостряйте внимание на этом. Просто если знаете,
'что в переменных будут целые числа используйте Long, если дробные Double.
Dim i As Long
'Вставляем в первую ячейку число с таким расчётом,
'чтобы в ячейке, где находится курсор, оказался ноль.
'Selection - означает, что мы работает в том месте, где находится курсор
'или где выделено. Альтернативой является, например:
'Activedocument.Range(Start:=0, End:=0)
'что означает - работу в самом начале документа.
'Tables(1) - выделено может быть несколько таблиц одновременно,
'поэтому нужно указать, с какой таблицей работать. (1) - означает,
'что нужно работать с первой таблицей в выделенном диапазоне.
'В нашем случае ничего не выделено, поэтому это просто правило написания кода и
'не имеет смысла, т.к. если ничего не выделено, то речь идёт об одной таблице.
'Cell(1, 1) - означаете первую ячейку в таблице (первая строка, первый столбец).
'Range - не заостряйте на этом внимание, просто запомните, чтобы поместить
'в ячейку текст, нужно записать сначала Range.
'Text - означает, что нужно поместить в ячейку текст.
'Cells(1) - выделено может быть несколько ячеек в таблице одновременно,
'(1) - означает обработать первую ячейку в выделенном диапазоне.
'В нашем случае снова имеет место правило написания кода и не имеет смысла, т.к.
'ничего не выделено, и речь идёт об одной ячейке, где находится курсор.
'RowIndex - с помощью этой команды узнаём номер строки, в которой находится
'ячейка, где находится курсор.
'-1 - здесь математика, просто подгоняем под нужную цифру.
Selection.Tables(1).Cell(1, 1).Range.Text = Selection.Cells(1).RowIndex - 1
'Расставляем остальные числа.
'With
'End With - используется, чтобы меньше писать кода (чтобы было проще
'ориентироваться в тексте кода). И одновременно: чем меньше текста в коде,
'тем программа быстрее работает, т.к. компьютеру надо меньше читать текста.
'Например, можно так записать:
'Selection.Tables(1).Rows.Count
'Selection.Tables(1).Cells(i,1).Range.Text
'А можно то же самое вот так записать:
'With Selection.Tables(1)
    .Rows.Count
    .Cells(i, 1).Range.Text
'End With
With Selection.Tables(1)
    'For ... To ... Step ... Next - называется циклом и используется
    'для выполнения одного и того же действия заданное количество раз
    '(в нашем случае цикл повторяется столько раз, сколько
    'в таблице строк (кроме первой строки).
    '.Rows.Count - Rows относится к Tables(1). Count - означает
    'количество строк в таблице.
    For i = 2 To .Rows.Count Step 1
        '.Cell(i - 1, 1).Range.Text - это содержимое предыдущей ячейки (i - 1).
        'Val - берёт из предыдущей ячейки только число (в каждой ячейке
        'в Word всегда есть 2 непечатаемых символа (один из них виден,
        'когда включён режим отображения непечатаемых символов, а
        'второй вообще не виден). Следовательно Val - позволяет
        'взять только число без всяких ненужных элементов.
        .Cell(i, 1).Range.Text = Val(.Cell(i - 1, 1).Range.Text) - 1
        'Выше я писал, что приведу пример использовать переменной i.
        'Здесь и приведу. Если не использовать переменную i, то код
        'нужно было вот так записать:
        '.Cell(2, 1).Range.Text = Val(.Cell(2 - 1, 1).Range.Text) - 1
        '.Cell(3, 1).Range.Text = Val(.Cell(3 - 1, 1).Range.Text) - 1
        '.Cell(4, 1).Range.Text = Val(.Cell(4 - 1, 1).Range.Text) - 1
        'и так до последней строки таблицы. Т.е. получается очень много текста.
        'Но благодаря совместному использованию цикла
        'For ... To ... Step ... Next и переменной i - это заняло всего 3 строки.
    Next i 'Next увеличивает переменную i на число, указанное в Step.
End With
'MsgBox - используется для вывода на монитор сообщений.
'vbInformation - добавляет в диалоговое окно какой-то значок.
'Если удалите запятую и снова поставите, то появится выбор различных диалоговых окон.
MsgBox "Работа макроса завершена", vbInformation
End Sub
1
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
29.05.2011, 00:54  [ТС]
спасибо, отличная работа!
0
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
30.05.2011, 04:31  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub СЕТКА_КООРДИНАТ_ВТАБЛИЦЕ()
Dim i As Long
Dim X As Long
Dim Y As Long
X = Selection.Cells(1).ColumnIndex
Y = Selection.Cells(1).RowIndex
Selection.Tables(1).Cell(1, X).Range.Text = Selection.Cells(1).RowIndex - 1
With Selection.Tables(1)
    For i = 2 To .Rows.Count Step 1
        .Cell(i, X).Range.Text = Val(.Cell(i - 1, X).Range.Text) - 1
    Next i
End With
Selection.Tables(1).Cell(Y, 1).Range.Text = 1 - Selection.Cells(1).ColumnIndex
With Selection.Tables(1)
    For i = 2 To .Columns.Count Step 1
        .Cell(Y, i).Range.Text = Val(.Cell(Y, i - 1).Range.Text) + 1
    Next i
End With
End Sub
эх, еще бы в текущих столбце и строке текст (цифры) выровнять по центру и сделать жирными, а заодно в столбце - правые границы, а в строке - верхние границы ячеек сделать более толстыми по сравнению с другими!
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
01.06.2011, 13:37
Код:
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 P3()
'Обработка первой строки в таблице.
With Selection
    'Сначала выделяем строку, затем делаем с ней действия.
    .Tables(1).Rows(1).Select
    'Вертикальное выравнивание текста.
    .Tables(1).Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter
    'Горизонтальное выравнивание текста.
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    'Шрифт жирным.
    .Font.Bold = True
    'Границы.
    .Rows.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt
End With
'Обработка первого столбца в таблице.
With Selection
    .Tables(1).Columns(1).Select
    .Tables(1).Columns(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Font.Bold = True
    .Rows.Borders(wdBorderRight).LineWidth = wdLineWidth150pt
End With
End Sub
1
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
01.06.2011, 23:24  [ТС]
ОК, только нужно не первого столбца/строки а текущего, где 0 стоит...
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
01.06.2011, 23:26
Цитата Сообщение от diletant2 Посмотреть сообщение
ОК, только нужно не первого столбца/строки а текущего, где 0 стоит...
в переменные запишите номер строки и столбца, где курсор.
0
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
02.06.2011, 00:04  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
в переменные запишите номер строки и столбца, где курсор.
заранее он не известен: надо те, где исходно стоял курсор и теперь стоит 0
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
02.06.2011, 00:09
diletant2,
#28 строки 5 и 6.
0
6 / 4 / 0
Регистрация: 02.05.2011
Сообщений: 102
02.06.2011, 00:49  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
Код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub P3()
 
With Selection
     .Tables(1).Rows(Y).Select
     .Tables(1).Rows(Y).Cells.VerticalAlignment = wdCellAlignVerticalCenter
      ...
End With
...
With Selection
    .Tables(1).Columns(X).Select
    .Tables(1).Columns(X).Cells.VerticalAlignment = wdCellAlignVerticalCenter
    ...
End With
End Sub
так нужно?
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
02.06.2011, 02:29
Цитата Сообщение от diletant2 Посмотреть сообщение
так нужно?
если работает, то значит, так.
0
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 14
22.05.2019, 17:00
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Да. Через поле {=11 - {Seq x}}.
{} вставить по Ctrl-F9.
выдаёт после обновления СИНТАКСИЧЕСКАЯ ОШИБКА.
Куда вставлять?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2019, 17:00

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

Нумерация списка уникальных значений
Добрый день! Прошу помощи написать макрос или возможно формулу! Задача: нужно пронумеровать значения в столбце (от 1 до n) в...

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

Вывести в виде отдельных списков нечетные и четные элементы списка Y1 (нумерация элементов начинается с 0)
Помогите пожалуйста с задчей: Вывести в виде отдельных списков нечетные и четные элементы списка Y1 (нумерация элементов начинается с 0)

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1. создание списка. 2. печать списка на...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru