|
发表于 2016-9-14 14:41
|
显示全部楼层
本楼为最佳答案
本帖最后由 today0427 于 2016-9-14 15:24 编辑
挺好,但整数时,没有计量单位了
谢谢大神提醒,因为没有模拟到这种数据,所以出现问题了,前面加了一个if判断就好了
- Public Function lbc(M) '鲁班尺
- If InStr(M, ".") = 0 Then
- lbc = Application.Text(M, "[DBnum2]") & "丈"
- If lbc = "零丈" Then lbc = ""
- lbc = IIf(lbc = "", lbc, "为鲁班尺 " & lbc)
- Exit Function
- End If
- lbc = Replace(Application.Text(Round(M + 0.00000001, 3), "[DBnum2]"), ".", "丈")
- lbc = IIf(Left(Right(lbc, 4), 1) = "丈", Left(lbc, Len(lbc) - 2) & "尺" & Left(Right(lbc, 2), 1) _
- & "寸" & Right(lbc, 1) & "分", IIf(Left(Right(lbc, 3), 1) = "丈", Left(lbc, Len(lbc) - 1) & "尺" _
- & Right(lbc, 1) & "寸", IIf(Left(Right(lbc, 2), 1) = "丈", lbc & "尺", lbc)))
- lbc = Replace(Replace(Replace(Replace(Replace(lbc, "零丈零尺零寸", ""), "零丈零尺", ""), "零丈", ""), "零尺", ""), "零寸", "")
- lbc = "为鲁班尺 " & lbc
- End Function
复制代码 |
|