Данный макрос автоматически проставляет номера пунктов в выделенном диапазоне - столбце таблицы.
Отличие данного макроса от обычного "протягивания номера" мышкой в том, что можно пронумеровать пункты таблицы даже при наличии среди нумеруемых ячеек объединённых и форматы нумеруемых ячеек не изменяются.
Нумерация ведётся с шагом +1 начиная от числа, записанного в первой выделенной ячейке - Selection(1)
[vba]
Код
Sub RowsNum() 'нумерация ячеек в выделенном столбце Selection
If TypeName(Selection) <> "Range" Then Exit Sub
On Error Resume Next
If Selection.Columns.Count <> 1 Then MsgBox "Выбрано более одного столбца": Exit Sub
Dim iCell As Range
Dim Nn: Nn = Selection.Cells(1)
Application.ScreenUpdating = False
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.Cells(1).NumberFormat
' .HorizontalAlignment = Selection.Cells(1).HorizontalAlignment
' .VerticalAlignment = Selection.Cells(1).VerticalAlignment
' .Orientation = Selection.Cells(1).Orientation
' .ShrinkToFit = Selection.Cells(1).ShrinkToFit
End If
End With
Next
Application.ScreenUpdating = True
End Sub
[/vba]