小数点后面加0的公式可以达到8个字符
从标题我需要一个公式小数点后面加零。 这需要确保有8个字符供select。
例如, 7305.2
将需要7305.002
。
这是合同参考ID所必需的。 我们的ERP要求所有合同编号为8个字符,格式如上所示。
考虑以下用户定义函数 (UDF):
Public Function PaddIt(r As Range) As String Dim st As String, L As Long st = r.Text L = Len(st) If L >= 8 Then PaddIt = st Exit Function End If If InStr(1, st, ".") = 0 Then st = st & "." If Len(st) = 8 Then PaddIt = st Exit Function End If End If While Len(st) < 8 st = Replace(st, ".", ".0") Wend PaddIt = st End Function
以下是一些示例input/输出:
如果已经有8个字符,则返回input。
如果input中没有“ 。 ”,则添加“ 。 ”。
在“ 。 ”之后填充零,直到长度为8。
用户定义的函数(UDF)非常易于安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除UDF:
- 如上所示调出VBE窗口
- 清除代码
- closuresVBE窗口
从Excel中使用UDF:
=PaddIt(A1)
要了解有关macros的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关UDF的具体信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
macros必须启用这个工作!
这里是公式解决scheme:
=IF(ISERROR(FIND(".",A1)),LEFT(A1&"."&"00000000",8),IF(LEN(A1)<8,LEFT(A1,FIND(".",A1)-1)&"."&RIGHT("00000000"&MID(A1,FIND(".",A1)+1,99),7-LEN(LEFT(A1,FIND(".",A1)-1))),A1))
编辑: 链接到Excel的美化