填充零位数字

时间:2015-07-25 16:17:54

标签: vba excel-vba for-loop excel

我有一个像这样的循环将工作表保存为CSV文件,但我的前9页名称是sinani-01 ... sinani-09(不像sinani-1 ... sinani-9)。如何在数字小于10之前连接0

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

4 个答案:

答案 0 :(得分:9)

VBA具有.equals功能,可用于填充数字。

Format()

这将使用animal = "sinani-" & Format$(i, "00") 填充一位数字。您的两位和三位数字将继续按预期工作。

答案 1 :(得分:6)

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

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

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

答案 2 :(得分:1)

与一系列前导零连接,并根据需要从右侧剥去数字。

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

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

答案 3 :(得分:0)

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

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

的单元格
MsgBox n & "cell" & IIF(n <> 1,"s","") & " found"

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