Объединить переменную с ведущими нулями с другой строкой - PullRequest
0 голосов
/ 02 января 2019

Сценарий

У меня есть ячейка Excel, которая содержит значение с ведущими нулями (например, 0002).Мой макрос копирует это значение в переменную с именем runNumber и вставляет его в другой файл, объединяя этот runNumber с другой строкой.Но когда это происходит, мне не хватает начальных нулей runNumber

Коды

yearInYy = "19"

ciNumber = "PFTPA-" & yearInYy & "-" & runNumber

Выходная ячейка отображается как PFTPA-19-2

Что мне нужно

Мне нужна выходная ячейка, чтобы показать

PFTPA-19-0002

Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Чтобы добавить ведущие нули в строку, вам не нужен VBA, для этого можно использовать следующую формулу Excel:

=CONCATENATE(REPT("0";4-LEN(D4));D4)

Она работает следующим образом:

  • Возьмите длину вашей строки и вычтите ее из 4 (это даст вам необходимое количество символов «0»).
  • Создайте строку, состоящую из повторения символов «0».
  • Объединить этот повтор строк в исходную строку.
0 голосов
/ 02 января 2019
ciNumber = "PFTPA-" & yearInYy & "-" & Format(runNumber, "0000")

Используя функцию Format , вы можете преобразовать дату или число в строку определенного формата.Все, что мы здесь делаем, - это 4 цифры с ведущими нулями.

Эквивалентом в самом Excel является TEXT функция

0 голосов
/ 02 января 2019

Предполагая, что поле, содержащее 0002, отформатировано как текстовое поле, затем работайте со строками повсюду.Здесь я читаю runNumber из ячейки A1.Это означает, что вы можете иметь дело с переменным числом ведущих нулей.

Option Explicit
Public Sub test()
    Dim runNumber As String, yearInYy As String, ciNumber As String
    yearInYy = "19"
    runNumber = [A1]
    ciNumber = "PFTPA-" & yearInYy & "-" & runNumber
    Debug.Print ciNumber
End Sub
...