我正在尝试将以下文本转换为excel 2003中的十进制数字:
“93⅛”
输出应为:93.125
通过使用VBA中的Replace功能,我已经使用了¼,½,¾: 例如,这有效:
cur_cell = Replace(cur_cell, "½", " 1/2")
但是,VBA编辑器不支持⅛和系列字符。它们显示为??。相反,我试图直接替换unicode值:
cur_cell = Replace(cur_cell, " & ChrW$(&H215B) & ", " 1/8")
但这不起作用。
有没有一种方法可以将这些字符串转换为我可以使用的数字?
答案 0 :(得分:4)
正确的语法是:
cur_cell = Replace(cur_cell, ChrW$(&H215B), " 1/8")
你的例子是:用1/8
替换由空格,&符号,空格[等]组成的字符串。显然,这不是你想要做的!
我实际上建议:
cur_cell.Value = Replace(Replace(cur_cell.Value, ChrW$(&H215B), ".125")," ","")
规避Excel自动替换分数。我只是不喜欢依赖那种自动的东西。为什么不把它直接写成十进制数?此外,我喜欢明确引用单元格的.Value
属性,而不是依赖它作为默认属性。