[英]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.