小数点后面加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)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. 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的美化