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

时间:2019-01-02 09:21:43

标签: excel vba string-concatenation

场景

我有一个Excel单元格,该单元格包含带有前导零的值(例如:0002)。我的宏将这个值复制到一个名为old_hash的变量中,并通过将该runNumber与其他字符串串联在一起将其粘贴到另一个文件中。但是这样做的时候,我错过了runNumber

的前导零

代码

runNumber

yearInYy = "19"

输出单元格显示为ciNumber = "PFTPA-" & yearInYy & "-" & runNumber

我需要的

我需要显示输出单元格

PFTPA-19-2

有人知道怎么做吗?

3 个答案:

答案 0 :(得分:2)

ciNumber = "PFTPA-" & yearInYy & "-" & Format(runNumber, "0000")

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

Excel本身相当于TEXT function

答案 1 :(得分:1)

假定包含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

答案 2 :(得分:1)

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

#include <stdio.h>


int main()
{
  int i,j,a[2][2];
  for(i=0;i<2;i++) /*go through rows - arrays in c go [0- (n-1)]*/
  {
    for(j=0;j<2;j++)/*go through col */
       scanf("%d",&a[i][j]); /*remove \t- now will scan 4 values only */
  }

  printf("\n%d\t%d\n%d\t%d", a[0][0],a[0][1],a[1][0],a[1][1]);
  return 0;
}

它的工作原理如下:

  • 取字符串的长度,然后减去4(这将为您提供所需的“ 0”个字符)。
  • 创建一个字符串,其中包含重复的“ 0”个字符。
  • 将重复的字符串连接到原始字符串。