在VBA

时间:2018-08-17 16:33:49

标签: vba excel-vba

对于初学者来说,有很多与此主题相关的问题。但是,我一直单击的所有语言都是VBA以外的语言,并且我不理解这些语言的语法。

当我进行Google搜索时,我发现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语句的情况,其中IF Dimscale <10则为“ 000”&如果Dimscale <100则为“ 00”&等。

是否可以像VBA中的VB方法一样做到这一点?

1 个答案:

答案 0 :(得分:11)

也许是:

{{1}}

根据@MathieuGuindon的宝贵贡献(照常):

Format(完全合格的VBA.Strings.Format)采用Variant参数,并返回Variant-您也可以使用其小兄弟Format $,后者采用String并返回String,从而消除了隐式转换方式