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

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

07.01.2011, 13:27. Показов 37556. Ответов 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 Кб, 292 просмотров)
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 18:56
Так, Оленька, давайте обстоятельно. В этом вашем посте вы просили перевести формулу на ВБА, что я и сделал дословно. Данная вами формула возвращает в ячейку количество аргументов в столбце "D". Если бы вы изначально правильно сформулировали задачу, то и вопросов было бы меньше.
Внимательно посмотрите где располагается макрос. Если нужно чтобы он работал только для конкретной страницй, то код нужно разместить в модуле листа, в событии его изменения. Макрос нумерует столбец А если в В есть значение.
Вложения
Тип файла: xls rows numeration_.xls (21.5 Кб, 1063 просмотров)
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru