我有一些以“ dTot”变量结尾的代码,该变量将是一个最多有5个小数位的数字。
用户可以选择设置dTot的小数位数,将用户选择分配给变量“ iDP”,范围可以是0到5。
dTot = Round(dTot,iDP)`可以正常工作。
但是,当添加到另一个数组时,我还需要使用千位分隔符格式化舍入的数字。
Format(Round(dTot, iDP), "#,##0.00000")
如果iDP为5,则正常工作,
Format(Round(dTot, iDP), "#,##0.00")
如果iDP为2
如何获取遵循iDP值的格式?
我知道我可以使用“ Select Case iDP”并具有6种Case,但是由于格式化需要应用于数组中200行中每行的6个表达式,因此我希望找到一种避免“ Select Case”的方法。 “
答案 0 :(得分:3)
答案 1 :(得分:1)
编辑:添加了user10825204在接受的答案中使用的出色的“ & IIF(iDP, ".", "")
”:
Format(Round(dTot, iDp), "#,##0" _
& IIF(iDP, ".", "") & WorksheetFunction.Rept("0", iDp))
Format(Round(dTot, iDp), "#,##0" _
& IIF(iDP, ".", "") & Replace(Space(iDp), " ", "0"))