在Excel 2003中将unicode分数字符(低俗分数)转换为小数
我试图将以下文本转换为Excel 2003中的十进制数字:
“93⅛”
输出应该是:93.125
我已经通过使用VBA中的replacefunction来获得这个function:¼,½,¾。例如,这可以工作:
cur_cell = Replace(cur_cell, "½", " 1/2")
但是,VBA编辑器不支持⅛和系列字符。 他们显示为?? 相反,我试图直接replaceunicode的值:
cur_cell = Replace(cur_cell, " & ChrW$(&H215B) & ", " 1/8")
但是这不起作用。
有没有一种很好的方法将这些string转换为我可以使用的数字?
正确的语法是:
cur_cell = Replace(cur_cell, ChrW$(&H215B), " 1/8")
你的例子是说:用1/8
replace由空格,&符号,空格等组成的string。 显然,这不是你想要做的!
我真的推荐:
cur_cell.Value = Replace(Replace(cur_cell.Value, ChrW$(&H215B), ".125")," ","")
以规避Excel自动更换分数。 我只是不喜欢依靠那种自动的东西。 为什么不把它作为一个十进制数直接写出来呢? 另外,我喜欢显式引用单元格的.Value
属性,而不是依赖它作为默认属性。