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

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

07.01.2011, 13:27. Показов 36900. Ответов 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 Кб, 1060 просмотров)
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
Ответ Создать тему
Новые блоги и статьи
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
Вот в чем сила LM.
Hrethgir 02.07.2025
как на английском будет “обслуживание“ Слово «обслуживание» на английском языке может переводиться несколькими способами в зависимости от контекста: * **Service** — самый распространённый. . .
Использование Keycloak со Spring Boot и интеграция Identity Provider
Javaican 01.07.2025
Два года назад я получил задачу, которая сначала показалась тривиальной: интегрировать корпоративную аутентификацию в микросервисную архитектуру. На тот момент у нас было семь Spring Boot приложений,. . .
Содержание темы с примерами на WebGL
8Observer8 01.07.2025
Все примеры из книги Мацуды и Ли в песочнице JSFiddle Пример выводит точку красного цвета размером 10 пикселей на WebGL 1. 0 и 2. 0 WebGL 1. 0. Передача координаты точки из главной программы в. . .
Основы WebGL. Простой треугольник
8Observer8 01.07.2025
Простой треугольник без трансформаций. Для трансформаций можно использовать glMatrix, как в примере: https:/ / plnkr. co/ edit/ qT6ZTwvncLPRamK5?preview На русском: . . .
Полиглотные микросервисы на C# и .NET
ArchitectMsa 30.06.2025
Полиглотная архитектура появилась не из желания усложнить жизнь разработчикам. Она родилась из практической необходимости решать разные задачи наиболее эффективным способом. В одном из проектов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru