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

Нумерация строк, пропуская объединенные

25.02.2016, 08:11. Показов 4757. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Никак не выходит решить такую задачу: Есть таблица, число строк в которой может варьироваться как в большую так и в меньшую сторону (данные будут как дополняться, так и удаляться в будущем). Есть необходимость автоматической/полуавтоматической нумерации строк в специально отведённой колонке . Боль в том, что:
1) С нерегулярным промежутком, встречаются объединенные ячейки, Которые захватывают колонку с .
2) Число строк в таблице около 10000 и оно https://www.cyberforum.ru/cgi-bin/latex.cgi?\neq Сonst
3) Объединенные ячейки не нужно нумеровать и они служат разделителями.
Пробовал найти подходящий макрос, но он не совсем подходит совсем не подходит для данного случая.
Подскажите, как быть в такой ситуации? Может макрос вовсе лишний?
Пример таблицы во вложении.
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
Sub RowsNum() 'нумерация ячеек в первом выделенном столбце Selection. Объединенные ячейки не мешают
If TypeName(Selection) <> "Range" Then Exit Sub
If Selection.Columns.Count <> 1 Then Intersect(Selection, Selection(1).EntireColumn).Select
On Error Resume Next
Application.ScreenUpdating = False
Dim iCell As Range, MrgCls As Boolean
Dim Nn: Nn = Selection(1)
If Not IsNumeric(Nn) Then
Nn = InputBox("Введите НОМЕР первого пункта", "В первой ячейке - текст!", 1)
If Not IsNumeric(Nn) Then Exit Sub
End If
Nn = Int(Nn)
If Nn = 0 Then Nn = 1
For Each iCell In Selection
With iCell
If (Not .MergeCells) Or (.MergeCells And .Address = .MergeArea.Cells(1).Address) Then
.Value = Nn: Nn = Nn + 1
.NumberFormat = Selection(1).NumberFormat
.HorizontalAlignment = Selection(1).HorizontalAlignment
.VerticalAlignment = Selection(1).VerticalAlignment
.Orientation = Selection(1).Orientation
.ShrinkToFit = Selection(1).ShrinkToFit
End If
If .MergeCells Then MrgCls = False
End With
Next
Application.ScreenUpdating = True
End Sub
Вложения
Тип файла: xlsx Образец таблицы 2.xlsx (10.4 Кб, 25 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2016, 08:11
Ответы с готовыми решениями:

Word изменить высоту пустых строк, если в таблице есть объединенные ячейки
Добрый день! Хотелось бы макросом изменить высоту пустых строк коих много в таблице.

Нумерация строк (абзацев)
Добрый вечер. Подскажите пожалуйста, как средствами VBA пронумеровать выделенные абзацы. ...

Нестандартная нумерация строк
Здравствуйте! подскажите пожалуйста как лучше сделать нумерацию (макрос или формулы какие) как в...

Сквозная нумерация строк в списке
Добрый день, возникла проблема при написании макроса для сквозной нумерации строк в списке,...

2
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
25.02.2016, 10:03 2
Лучший ответ Сообщение было отмечено Artius_Vens как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
Sub vvv()
Dim i%, n%
Application.ScreenUpdating = False 'отключаем обновление экрана
n = 1
For i = 6 To Cells(Rows.Count, 2).End(xlUp).Row
  If Not Cells(i, 1).MergeCells Then Cells(i, 1) = n: n = n + 1
Next
Application.ScreenUpdating = True 'включаем обновление экрана
End Sub
1
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 23
25.02.2016, 10:32  [ТС] 3
Vlad999, Огромное спасибо! Очень помогло!
0
25.02.2016, 10:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2016, 10:32
Помогаю со студенческими работами здесь

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

Нумерация строк в TB для Find/Replace по всему документу Word
Здравствуйте! У меня возник вопрос как лучше сделать, нумерацию строк в textbox'ах, в небольшом...

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

Нумерация строк
Привет) Сразу не гоните, потому что не все так просто... На серве MS SQL 2005 не работают...


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

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