代码之家  ›  专栏  ›  技术社区  ›  Forward Ed

在VBA中将整型变量转换为前导零的字符串

  •  3
  • Forward Ed  · 技术社区  · 8 年前

    首先,有很多关于这个话题的问题。不过,我一直点击的都是VBA以外的语言,我不明白这些语言的语法。

    this answer 看起来很有希望。啊小提琴棒!我刚刚意识到VB的答案,并可能解释了为什么它不能在我的VBA中工作

    形势

    我有一个叫做DimScale的变量,它是一个整数。我想创建一个名为DimName的字符串,该字符串以“mm”开头,后面跟着DimScale中的整数,前导0,这样“mm-”后面就有最少的字符。

    IF DimScale = 25
    Then DimName = "mm-0025"
    
    IF DimScale = 235
    Then DimName = "mm-0235"
    
    Note Dimscale >=1 and <= 9999
    

    我试过的

    Dim Dimscale as Integer
    Dim Dimension_Style_Name as String
    
    String.Format("{0:0000}", DimScale)
    
    Dimension_Style_Name = DimScale$
    Dimension_Style_Name.Format("{0:0000}", DimScale)
    

    我也读过要点,Dimscale被转换成一个字符串,然后通过加前导零的循环发送,直到字符串的长度等于4个字符(在我的例子中是整数部分)。

    我也见过IF statements的情况,其中IF Dimscale<10,然后是“000”&IF Dimscale<100,然后是“00”&等等。

    有没有像VB a中的VB方法那样的方法呢?

    1 回复  |  直到 8 年前
        1
  •  12
  •   DisplayName    8 年前

    也许 吧:

    DimName = "mm-" & format(DimScale,"0000")
    

    根据@MathieuGuindon有价值的(一如既往)贡献:

    Format(完全限定的VBA.Strings.Format)接受一个Variant参数,并返回一个Variant-您还可以使用它的little brother Format$,它接受一个字符串并返回一个字符串,消除了一路上的隐式转换