Страницы: 1
RSS
[VBA] Сделать подсчет символов в ячейке и если их меньше 50, то прибавить в конце пробел/пробелы
 
Добрый день.

Имеется в столбике А заполненые ячейки (очень много) и надо привести их длину к 50-ти символам. Если же в ячейке символов меньше 50-ти, то надо прибавить в конце пробелы. (Изначально все ячейки имеют длину меньше или равно 50-ти символов)
Средствами VBA.
Например было:
"Иванов Иван Иванович"
"Иванов Иван Иванович                              "

Решено, спасибо.
Изменено: PROFF84 - 06.08.2018 15:32:13
 
Добрый день! Сколько нужно добавить пробелов? Мы должны угадать?

P.S.: ступил! Нужно добить до 50ти) сейчас не могу, нет доступа к компьютеру(
Изменено: ADimov - 06.08.2018 14:09:05
 
Цитата
ADimov написал:
Добрый день! Сколько нужно добавить пробелов? Мы должны угадать?
Столько, чтобы в сумме количество символов в ячейке получилось в итоге 50
Изначально будут от 1 до 50 символов в ячейке (будут фио корректные и не корректные).
 
Только это можно сделать и формулами) зачем VBA?)
 
Вариант формулой
=A1&ПОВТОР(" ";50-ДЛСТР(A1))
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
ADimov написал:
Только это можно сделать и формулами) зачем VBA?)
потому что делается часть функционала (здесь его не писал), который выгружает эти фио из другой базы и надо чтобы все было едино
 
Может эту формулу доработать сможет кто?
Код
For i = 1 To ActiveSheet.UsedRange.Rows.Count
        DoEvents
        'If Range("A" & i) = "" Then Exit Do
        If Len(CStr(Range("A" & i))) < 70 Then
           'тут добавление пробелов как сделать?
           
        End If
    Next
Изменено: PROFF84 - 06.08.2018 15:23:02
 
Спасибо за помощь, проблема решена. Прошу закрыть тему
Использовал (мне помогли)
Код
Application.WorksheetFunction.Rept
Изменено: PROFF84 - 06.08.2018 15:31:49
 
Код
            Range("A" & i) = Range("A" & i) & Space(70 - Len(Range("A" & i)))
По вопросам из тем форума, личку не читаю.
 
Range("A" & i)=Range("A" & i) & Space(50 - Len(Range("A" & i)))
 
Код
Range("a" & i) = Range("a" & i) & String(50 - Len( Range("a" & i) ), " ")
Изменено: Nordheim - 06.08.2018 15:48:42
"Все гениальное просто, а все простое гениально!!!"
 
С любой исходной длиной строки
Код
Range("A" & i) = Left(Range("A" & i) & Space(50), 50)
Владимир
 
sokol92,  Владимир, приветвую, на сколько я понимаю, то ТС был нужен вариант записи Nго числа пробелов, в результате аж 3 решения ну а Ваш вариант (которым в формулах я не редко пользуюсь) можно дополнить  в лоб просто добавить 50 пробелов :-)
Код
Range("A" & i) = Left(Range("A" & i) & "                                                    ", 50)


К слову не так он и плох, естесвенно при числе символов менее чем запись формулы со STRING или Space ( хотя и проиграет наглядности.
По вопросам из тем форума, личку не читаю.
 
Еще пара вариантов
Код
  s = Space$(50)
  LSet s = "Иванов"
Обычно такое бывает нужно при выводе в файл (с последующей распечаткой). Можно так
Код
  Print #file, "Иванов"; Tab(51)
Страницы: 1
Наверх