Страницы: 1
RSS
Добавить 0 в ячейках где количество символов меньше 7, VBA макрос, по добавлению нуля в начало значения в ячейке
 
Добрый день.

Может кто подскажет почему не работает данный кусок кода?

Суть кода: в ячейке обрезало нули вначале значения где номера начинаются с 0. нужно восстановить значения в колоне "A". Если в ячейке символов меньше 7 то нужно подставить к значению в начало "0" в ту же ячейку.
Код
Sub Ze()

LR = Cells(Rows.Count, 1).End(xlUp).Row
 
    For i = LR To 2 Step -1
            
       str_test = Cells(i, 1).Value = Right(String(7, "0") & str_test, 7)
          
        Next
    
End Sub
Изменено: lilo295 - 27.06.2023 15:08:38
 
Добрый день. У вас в коде написано что-то вроде
Код
Для i = переменная to 2 шаг -1
переменная = значение ячейки(i,1) = ФункцияПравСимвол(ТипДанныхСтрока(7, "0") & переменная, 7)
Мне кажется, что вы не очень поняли, что написали. Навскидку это можно сделать так:
Код
Sub Add_Zero() 
    Dim objC as Range 
    For each objC in Selection 
        If len(objC)<7 then 
            objC= "0" & objC.Value
        End If
    Next 
End Sub

Выделить значения, запустить макрос.
Изменено: Пытливый - 27.06.2023 15:31:10
Кому решение нужно - тот пример и рисует.
 
Попробуйте так
Код
Sub Test()
a = 777777
MsgBox Format(a, "0000000")
End Sub

Но для того, чтобы изменить значение в ячейке, нужно, чтобы формат ячеек был текстовый
 
Код
With Range("A2:A" & lr)
    .NumberFormat = "@"
    .Formula = Application.Text(.Value, "0000000")
End With
Изменено: zav - 27.06.2023 15:31:14
 
Спасибо!
 
Отобразить 0 в ячейке можно  просто форматом, без макроса. А если нужно именно текстовое представление,  добавлял бы я так
Код
Sub Add_Zero()
    Dim objC As Range
    For Each objC In Selection
            objC.NumberFormat = "@"
            objC = String$((7 - Len(objC)), "0") & objC.Value
    Next
End Sub
 
Нужно именно перебрать значения колонка уже заполнена значениями и тут нужна проверка если знаков в ячейке меньше 7 то добавить 0, если 7 и больше то ничего не делать. Количество строк всегда разное
 
.
Изменено: RAN - 27.06.2023 17:31:58
 
Вариант с новой колонкой и формулой
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=36450&am...
Изменено: Marat Ta - 27.06.2023 17:51:24
 
Цитата
lilo295 написал:
нужна проверка если знаков в ячейке меньше 7 то добавить 0, если 7 и больше то ничего не делать
- так и не ответили - добавить куда?
И нужно бы знать зачем и что далее будете с этими значениями делать - просто посмотреть, или печатать. или сравнивать с другими...
Изменено: Hugo - 27.06.2023 18:30:23
Страницы: 1
Наверх