Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/197: Рейтинг темы: голосов - 197, средняя оценка - 4.71
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91

Макрос для автоматической нумерации строк

07.01.2011, 13:27. Показов 38182. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как исправить макрос чтобы строки нумеровались автоматически на листе, а также при удалении строки нумерация также смещалась.

Visual Basic
1
2
3
4
5
6
7
Private Sub worksheet_change (byval target as range) 
 
For Each oCell In Range([D1], Cells(Rows.Count, "D")).Cells
    If Not IsEmpty(oCell) Then iCount = iCount + 1: oCell.Previous = iCount
Next
 
End Sub
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2011, 13:27
Ответы с готовыми решениями:

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

Макрос для нумерации с группами и подгруппами
Доброго времени суток. У меня имеется 2 столбца А и В, ячейки в столбце А я закрасил 3 разными цветами, то есть красный в соседней ячейке...

Найти сумму элементов на пересечении строк четной нумерации и столбцов нечетной нумерации в двумерном массиве
Здравствуйте. Помогите,пожалуйста,найти сумму элементов на пересечении строк четной нумерации и столбцов нечетной нумерации матрицы A() ...

15
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 17:40
А чем же вас этот код не устраивает конкретно?
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 17:42  [ТС]
он зависает после нумерации первой строки...
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 18:03
Естественно! Исправьте макрос следующим образом:
Visual Basic
1
2
3
4
5
6
7
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Application.EnableEvents = False
For Each oCell In Range([D1], Cells(Rows.Count, "D")).Cells
    If Not IsEmpty(oCell) Then iCount = iCount + 1: oCell.Previous = iCount
Next
Application.EnableEvents = True
End Sub
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 18:07  [ТС]
Vlanib,

теперь строки не нумеруются...
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 18:15
Скиньте ваш файлик.
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 18:24  [ТС]
файлик прилагаю
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 18:30
Видимо не приложился...
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 18:32  [ТС]
еще раз попробую...
Вложения
Тип файла: xls rows numeration.xls (16.0 Кб, 295 просмотров)
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 18:56
Так, Оленька, давайте обстоятельно. В этом вашем посте вы просили перевести формулу на ВБА, что я и сделал дословно. Данная вами формула возвращает в ячейку количество аргументов в столбце "D". Если бы вы изначально правильно сформулировали задачу, то и вопросов было бы меньше.
Внимательно посмотрите где располагается макрос. Если нужно чтобы он работал только для конкретной страницй, то код нужно разместить в модуле листа, в событии его изменения. Макрос нумерует столбец А если в В есть значение.
Вложения
Тип файла: xls rows numeration_.xls (21.5 Кб, 1070 просмотров)
1
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 19:01  [ТС]
Vlanib,

спасибо! только осталась еще одна проблема.. при удалении строки в столбце B номер все равно остается. при использовании же формулы он исчезает вместе с удаленным текстом. можно ли в макросе сделать также?
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 19:25
Visual Basic
1
2
3
4
5
6
7
8
9
Application.EnableEvents = False
For Each oCell In Range([B1], Cells(ActiveSheet.UsedRange.Rows.Count, "B")).Cells
    If Not IsEmpty(oCell) Then
        iCount = iCount + 1
        oCell.Previous = iCount
    Else: oCell.Previous.Clear
    End If
Next
Application.EnableEvents = True
1
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 20:26  [ТС]
теперь отлично. спасибо!

Добавлено через 13 минут
Vlanib,

извиняюсь, но еще одна небольшая проблемка. последнее введенное значение не пронумеровывается. как можно это исправить?

Добавлено через 16 минут
Vlanib,

прошу мое предыдущее сообщение считать недействительным.

у меня овт еще вопрос. я не совсем понимаю для чего используется Application.EnableEvents = False или True. Не могли бы вы вкратце объяснить?

Добавлено через 6 минут
я что то порядком запуталась... последняя строка и правда не нумеруется........
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
07.01.2011, 22:41
EnableEvents, как следует из перевода, отключает или включает обработку событий приложения (т. е события могут либо игнорироваться, либо при возникновении событий могут вызываться соответствующие обработчики этих событий) http://support.microsoft.com/kb/213720

Не по теме:

Цитата Сообщение от Olya1985 Посмотреть сообщение
я что то порядком запуталась
ВОЗМОЖНО, выполнение кода было остановлено пользователем между инструкциями Application.EnableEvents = False/True и события перестали обрабатываться вплоть до повторного открытия приложения

0
91 / 1 / 1
Регистрация: 09.01.2013
Сообщений: 2
09.01.2013, 11:15
Лучший ответ Сообщение было отмечено как решение

Решение

Уважаемый Vlanib Спасибо - Очень интересное решение , а можно дописать макрос чтоб в " A " счет шел с первой пустой ячейки ( так как обычно бывают шапки в таблицах - получится макрос на все случаи жизни
0
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
20.02.2021, 14:05
Vlanib, а как переписать макрос, чтобы он нумеровал строку не по приницпу "количество столбцов выше+1", а "значение в предыдущей ячейке+1". У меня нумерация строк просто 10001, 10002..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2021, 14:05
Помогаю со студенческими работами здесь

Макрос для автоматической вставки фото в лист Excel
Подскажите макрос вставить фото как фон к примечанию в Excel. Пример в файле. Фото в столбце 2.

Нужен макрос для автоматической замены переменных в формулах
Доброго дня всем! Пожалуйста, помогите написать макрос. В прикрепленном файле Пример макрос должен найти все ячейки с формулами...

Макрос для смены нумерации в нижнем колонтитуле в поле
Есть документы, в которых нумерация отображена в полях стр. { PAGE } из { =SUM(2;- число) }, которые находятся в нижнем колонтитуле в...

Макрос для очистки колонтитулов и установки сквозной нумерации в документе
Всем доброго времени суток! Проблема у меня следующая: часто приходится форматировать большие документы (300-600 стр), и каждые 10 -...

Макрос для автоматической установки времени при заполнении ячейки
Здравствуйте! Подскажите как сделать чтобы при заполнении ячейки А1 в ячейке В1 устанавливалось время изменений. пробовал через...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru