用零填充个位数
Posted
技术标签:
【中文标题】用零填充个位数【英文标题】:Pad single-digit numbers with a zero 【发布时间】:2015-10-16 04:32:16 【问题描述】:我有一个像这样的循环将工作表保存为 CSV 文件,但我的前 9 个工作表的名称喜欢 sinani-01 ... sinani-09
(不像 sinani-1 ... sinani-9
)。如何在小于 10 的数字之前连接 0
only?
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
【问题讨论】:
【参考方案1】:VBA 有一个Format()
函数,可用于填充数字。
animal = "sinani-" & Format$(i, "00")
这将用0
填充一位数字。您的两位数和三位数字将继续按预期工作。
【讨论】:
【参考方案2】:在第五行使用 Format 函数,如下所示:
animal = "sinani-" & Format(i, "#00")
#
表示可选的数字(即仅当i
中有那么多数字时才存在),0
绝对表示数字,如果i
没有足够的数字,则使用前导零.
【讨论】:
【参考方案3】:与一系列前导零连接,并根据需要从右侧剥离尽可能多的数字。
animal = "sinani-" & Right("00" & i, 2)
'alternate for many leading zeroes (e.g. DUNS number)
animal = "sinani-" & Right(String(9, "0") & i, 9)
【讨论】:
【参考方案4】:将& i
替换为& IIF(i < 10,"0","") & i
编辑中:尽管在这种情况下Format
提供了比IIF
更简洁的解决方案,但IIF
技巧在调整输出方面还有其他用途。例如,如果您想告知用户找到了多少满足某些条件的单元格,您可以使用类似
MsgBox n & "cell" & IIF(n <> 1,"s","") & " found"
优雅地处理复数和单数结尾
【讨论】:
以上是关于用零填充个位数的主要内容,如果未能解决你的问题,请参考以下文章