使用vbscript在Excel中replace小数部分

作为一个更大的脚本的一部分,我试图用Excel中的十进制值replace小数值使用VBScript。 我总是可以指望具有特定列和特定格式的值。

Excel示例预期input列B:

51-7/16 1-1/2 2 15-7/8 

Excel示例所需的输出列B:

 51.4375 1.5 2 15.875 

我知道这将永远是一个1/16。 所以我的想法是通过列表寻找每个可能的分数,find一个包含该分数的单元格,并将其replace为相应的小数。

问题:如何告诉脚本查找包含值的单元格,以及如何用小数点replace该分数?

最接近的例子search和使用VBscript在Excel中replace一些字符

尝试:

 Dim FMember (14) FMember(0) = "-1/16" FMember(1) = "-1/8" FMember(2) = "-3/16" FMember(3) = "-1/4" FMember(4) = "-5/16" FMember(5) = "-3/8" FMember(6) = "-7/16" FMember(7) = "-1/2" FMember(8) = "-9/16" FMember(9) = "-5/8" FMember(10) = "-11/16" FMember(11) = "-3/4" FMember(12) = "-13/16" FMember(13) = "-7/8" FMember(14) = "-15/16" Dim DMember(14) DMember(0) = ".0625" DMember(1) = ".125" DMember(2) = ".1875" DMember(3) = ".25" DMember(4) = ".3125" DMember(5) = ".375" DMember(6) = ".4375" DMember(7) = ".5" DMember(8) = ".5625" DMember(9) = ".625" DMember(10) = ".6875" DMember(11) = ".75" DMember(12) = ".8125" DMember(13) = ".875" DMember(14) = ".9375" Dim endRow2 endRow2 = objSheet2.UsedRange.Rows.Count For lngPosition = LBound(FMember) To UBound(FMember) For r = 1 To endRow2 If objSheet2.Cells(r, objSheet2.Columns("B").Column).Value = FMember(lngPosition) Then objSheet2.replace End If Next Next 

使用split()

 Function fract(str As String) As Double Dim strArr() As String If InStr(str, "-") Then strArr = Split(str, "-") fract = strArr(0) + Application.Evaluate(strArr(1)) Else fract = Application.Evaluate(str) End If End Function 

那么你可以使用它作为工作表函数:

 =fract(A1) 

在这里输入图像说明