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

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

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

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

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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2011, 13:27
Ответы с готовыми решениями:

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

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

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

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

15
Частенько бываю
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 17:40 2
А чем же вас этот код не устраивает конкретно?
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
07.01.2011, 17:42  [ТС] 3
он зависает после нумерации первой строки...
0
Частенько бываю
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 18:03 4
Естественно! Исправьте макрос следующим образом:
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  [ТС] 5
Vlanib,

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

спасибо! только осталась еще одна проблема.. при удалении строки в столбце B номер все равно остается. при использовании же формулы он исчезает вместе с удаленным текстом. можно ли в макросе сделать также?
0
Частенько бываю
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
07.01.2011, 19:25 12
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
теперь отлично. спасибо!

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

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

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

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

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

Добавлено через 6 минут
я что то порядком запуталась... последняя строка и правда не нумеруется........
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
07.01.2011, 22:41 14
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 15
Лучший ответ Сообщение было отмечено как решение

Решение

Уважаемый Vlanib Спасибо - Очень интересное решение , а можно дописать макрос чтоб в " A " счет шел с первой пустой ячейки ( так как обычно бывают шапки в таблицах - получится макрос на все случаи жизни
0
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
20.02.2021, 14:05 16
Vlanib, а как переписать макрос, чтобы он нумеровал строку не по приницпу "количество столбцов выше+1", а "значение в предыдущей ячейке+1". У меня нумерация строк просто 10001, 10002..
0
20.02.2021, 14:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2021, 14:05
Помогаю со студенческими работами здесь

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

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

Макрос для очистки колонтитулов и установки сквозной нумерации в документе
Всем доброго времени суток! Проблема у меня следующая: часто приходится форматировать большие...

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


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

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