将带有前导零的变量与另一个字符串连接起来

Concatenate variable with leading zeroes with another string

场景

我有一个 excel 单元格,其中包含带有前导零的值(例如:0002)。我的宏将这个值复制到一个名为 runNumber 的变量中,然后通过将这个 runNumber 与其他字符串连接起来将其粘贴到另一个文件中。但是当它这样做时,我错过了 runNumber

的前导零

代码

yearInYy = "19"

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

输出单元格显示为 PFTPA-19-2

我需要的

我需要输出单元格来显示

PFTPA-19-0002

有人知道怎么做吗?

假设包含 0002 的字段被格式化为文本字段,然后在整个过程中使用字符串。在这里,我正在读取单元格 A1 中的 runNumber。这意味着您可以处理可变数量的前导零。

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

为了在字符串中添加前导零,您不需要 VBA,您可以使用以下 Excel 公式:

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

它的工作原理如下:

  • 取你的字符串的长度,然后从 4 中减去它(它会得到你需要的“0”个字符的数量)。
  • 创建一个字符串,其中包含重复的“0”个字符。
  • 将重复的字符串连接到您的原始字符串。
ciNumber = "PFTPA-" & yearInYy & "-" & Format(runNumber, "0000")

使用Format function,您可以将日期或数字转换为具有特定格式的字符串。我们在这里所做的只是要求 4 位数字,前导零。

Excel本身的等价物是TEXT function