繁体   English   中英

填充零位数字

[英]Pad single-digit numbers with a zero

我有一个这样的循环来保存工作表作为CSV文件,但我的前9页是名字像sinani-01 ... sinani-09 (不像sinani-1 ... sinani-9 )。 我怎样才能连接一个0数少于10 过吗?

Sub Adder()
    Dim animal As String
    Dim i As Integer
    For i = 1 To 120
        animal = "sinani-" & i
        Sheets(animal).SaveAs "E:\Data\CSV\" & animal & ".csv", xlCSV
    Next i
End Sub

VBA有一个Format()函数,可用于填充数字。

animal = "sinani-" & Format$(i, "00")

这将使用0填充一位数字。 您的两位和三位数字将继续按预期工作。

在第五行中使用Format函数,如下所示:

animal = "sinani-" & Format(i, "#00")

#表示可选的数字(即仅在i有多个数字时出现), 0表示绝对是一个数字,如果i没有足够的数字,则使用前导零。

与一系列领先的零点连接,并根据需要从右侧剥离尽可能多的数字。

animal = "sinani-" & Right("00" & i, 2)

'alternate for many leading zeroes (e.g. DUNS number)
animal = "sinani-" & Right(String(9, "0") & i, 9)

替换& i by & IIF(i < 10,"0","") & i

编辑时:即使在这种情况下, Format提供了比IIF更清晰的解决方案, IIF技巧在调整输出方面还有一些其他用途。 例如,如果您想通知用户有多少单元格可以满足某些条件,您可以使用类似的东西

MsgBox n & "cell" & IIF(n <> 1,"s","") & " found"

优雅地处理复数与单数结尾

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM