Здравствуйте! В очередной раз обращаюсь за помощью форумского разума. Помогите, пожалуйста, исправить макрос.
Задача, чтобы он после выделения диапазона в столбце E проверял в каждой ячейке выделения количество символов. Если оно равно 8, оставлял значение как есть, если не равно 8 - чтобы добавлял к артикулу ноль в начало. Сейчас исправленные значения могут располагаться в столбце, например, Q (внутри самих ячеек столбца E, понимаю, невозможно одновременно и брать исходные данные, и получать результат). В настоящее время после выделения одной ячейки вроде бы работает, хотя иногда по непонятным причинам результатом становится не восьмисимвольный текст, а часть текста самого макроса =IF(LEN(RC[-11])<>8,"0"&RC[-11],RC[-11]) Преобразование в текстовый формат до замены формулы значением делается, чтобы не "съедались" нули в начале артикула.
Dim i As Long, j As Long
i = 8
For j = 8 To 10
If Len(Sheets(1).Cells(i, 5)) <> 8 Then
Sheets(1).Cells(i, 17) = CStr("0" & Sheets(1).Cells(i, 5))
Else
Sheets(1).Cells(i, 17) = CStr(Sheets(1).Cells(i, 5))
End If
i = i + 1
Next j
Dim i As Long, j As Long
i = 8
For j = 8 To 10
If Len(Sheets(1).Cells(i, 5)) <> 8 Then
Sheets(1).Cells(i, 17) = CStr("0" & Sheets(1).Cells(i, 5))
Sheets(1).Cells(i, 5) = Sheets(1).Cells(i, 17)
Else
Sheets(1).Cells(i, 17) = CStr(Sheets(1).Cells(i, 5))
End If
i = i + 1
Next j
В 17 столбце всё нормально! Вам надо чтобы в самой таблице текст артикула менялся? Тогда вот так Я бы еще в конце добавил очистку столбца 17