Найти тему

Что делать, если Эксель съел нолик в начале номера - макрос и формула

Очень частая ситуация, когда у нас есть какой-то номер в списке. который начинается с нуля, но при копировании на лист Эксель эксель воспринимает формат данных как числовой и "съедает" нолик (или даже нолики).

Например, вот такой список

1. В принципе, проблема может решаться формулой.

Переводим ячейки, в которые надо добавить нолики, в текстовой формат. Если нам надо просто вставить нолики, то формула будет следующая: ="0"&C10, если же надо поставить условием определенную длину. то =IF(LEN(C8)<8;"0"&C8;C8)

-2

После чего копируем полученные результаты и вставляем список как значения, заменяя значения со съеденными на получившийся список.

2. Но когда у нас каждый первый список с сожранными нулями, тогда формулы будут отнимать лишнее время и есть смысл поработать макросом.

Макрос, который просто добавляет нолики:

Sub add_zeros_simple()

Dim a As String

Dim x

LRow = Selection.Rows.count

Selection.NumberFormat = "@"

For I = 1 To LRow

Selection.Cells(I) = "0" & Selection.Cells(I)

Next I

End Sub

А вот тут добавлено условие - в данном случае, по длине строки (условие выделено - при длине строки равной 7, вы можете это поменять под свои условия)

Sub add_zeros()

Dim a As String

Dim x

LRow = Selection.Rows.count

Selection.NumberFormat = "@"

For I = 1 To LRow

If Len(Selection.Cells(I)) = 7 Then Selection.Cells(I) = "0" & Selection.Cells(I)

Next I

End Sub

Как установить макрос в Эксель видео (не мое)