将带有前导零的变量与另一个字符串连接起来
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
场景
我有一个 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