Всем доброго времени суток. Очень частая проблема, которая встречается пользователям таблиц Excel, это пронумеровать строки в создаваемой таблице. Кто как только не ухищряется это делать.
Основных способов несколько. Я перечислю их по частоте использования:
1. Протянуть мышью, с нажатой левой кнопкой и протягивая за правый нижний угол первой ячейки до самого низа таблицы.
Способ интуитивно понятен даже для начинающих пользователей, поэтому он самый часто встречающийся способ.
Однако в этом простейшем способе есть ряд недостатков:
1. Если в таблице встречается специально предусмотренный разрыв строки, он все равно заполняется следующим числом. Если конечно, пользователь вовремя не заметит этого и не прекратит протягивать нумерацию строк дальше. После пропуска разрыва, приходится переходить на нужную строку, вводить следующий номер строки и продолжить протягивать нумерацию вниз
2. Если в таблице опять встречается разрыв строк, но в отличие от первого недостатка, этот разрыв строки состоит из объединенных ячеек
2. Способ довольно редкий, хотя его описание можно встретить на просторах интернета. Назовем его "по двойному щелчку мыши" по нижнему правому углу ячейки, с которой нужно начать нумерацию.
Способ кардинально отличается от первого способа и позволяет довольно быстро произвести операцию по нумерации строк, т.к. не нужно мышью протягивать до самого конца таблицы (сомнительное удовольствие, если в таблице несколько тысяч строк!)
У этого способа нет недостатков, которые есть в первом способе. Нумерация просто прекращается когда достигается первая пустая или объединенная ячейка. Нужно просто найти это место, перейти на следующую строку, которую нужно пронумеровать, вставить в следующие строки следующие значения номеров строк и повторить действие предыдущего абзаца.
Вывод: способ достойный внимания. И его, в принципе, должен знать любой уважающий свое время и нервы сотрудник, который в своей работе использует программу Excel.
3. Способ самый продвинутый и предполагает использование кода VBA.
В этом способе напрочь отсутствуют недостатки первого и второго способа. Программа просто нумерует строки от первой до последней ячейки. Единственное, что нужно сделать, это выделить все строки с места, от которого нужно пронумеровать. ОПЯТЬ ВЫДЕЛИТЬ!!! Чем это отличается от первого способа? Спросите вы.
Но ничего страшного, способов выделить таблицу до конца тоже несколько. Первый - мышью. Иногда долго, но действенно. Второй это нажав комбинацию клавиш ctrl+shift+End.
С помощью кода VBA можно предусмотреть наличие в выделенной таблице пустых ячеек, в ходе нумерации пропустить их и продолжить со следующей строки, где необходимо продолжить нумерацию.
Вот этот код, который реализует 3 способ.
Sub пронумеровать_строки()
Dim rS As Range
Dim i As Long
Dim sC As Integer
Set rS = Selection
For i = 2 To rS.Rows.Count
If Len(rS.Cells(i, 2)) > 0 Then
sC = sC + 1
rS.Cells(i, 1) = sC
End If
Next i
End Sub
Код очень простой. Алгоритм его следующий. Команда If Len(rS.Cells(i, 2)) > 0 в строке № 7 проверяет длину строки ячейки в столбце № 2 и если она не равна нулю, то проставляет в первую ячейку данной строки число sC, которое при соблюдении условия в строке № 7 увеличивается на одну единицу. Вот и результат
Посмотреть в динамике, как создавать код VBA и как он работает вы можете в этом видео
Если Вам понравилась статья, ставьте лайк и подписывайтесь на канал. Дальше будет интересней :))))