Vba 计算公式的单元格内容

Vba 计算公式的单元格内容,vba,excel,Vba,Excel,假设我有一列值,如: A 3' x 5' 4' x 6' 5' x 8' 6' x 9' 10' x 14' 2' 3 x 8' 如何将这些值拆分为整数,以便对其进行运算 对于前几个值,我显然想乘以3 x 5,4 x 6,等等。但是对于上面显示的最后一个值,这会变得很棘手。在这种情况下,它需要2.25x8(.25==3/12英寸)。这可能吗?首先确保使用“修剪”删除开头和结尾的空格,然后使用: =(LEFT(A1;FIND("'";A1)-1)+("0" & MID(

假设我有一列值,如:

    A
 3' x 5'
 4' x 6'
 5' x 8' 
 6' x 9'
10' x 14'
2' 3 x 8'
如何将这些值拆分为整数,以便对其进行运算


对于前几个值,我显然想乘以
3 x 5
4 x 6
,等等。但是对于上面显示的最后一个值,这会变得很棘手。在这种情况下,它需要
2.25x8
(.25==3/12英寸)。这可能吗?

首先确保使用“修剪”删除开头和结尾的空格,然后使用:

=(LEFT(A1;FIND("'";A1)-1)+("0" & MID(A1;FIND("'";A1)+2;FIND("x";A1)-FIND("'";A1)-2))/12)*MID(A1;FIND("x";A1)+1;LEN(A1)-FIND("x";A1)-1)

根据您的区域设置,您可能需要将“;”替换为“,”

首先确保使用修剪删除开头和结尾的空格,然后使用:

=(LEFT(A1;FIND("'";A1)-1)+("0" & MID(A1;FIND("'";A1)+2;FIND("x";A1)-FIND("'";A1)-2))/12)*MID(A1;FIND("x";A1)+1;LEN(A1)-FIND("x";A1)-1)
根据您的区域设置,您可能需要将“;”替换为“,”

尝试一下:

Public Function area(s As String) As Variant
    Dim ary, ti As String, leng(0 To 1) As Double, i As Long
    Dim bry
    ti = Chr(39)
    ary = Split(Replace(s, " ", ""), "x")
    For i = 0 To 1
        If Right(ary(i), 1) = ti Then
            leng(i) = CDbl(Mid(ary(i), 1, Len(ary(i)) - 1))
        Else
            bry = Split(ary(i), ti)
            leng(i) = CDbl(bry(0)) + CDbl(bry(1)) / 12
        End If
    Next i
    area = leng(0) * leng(1)
End Function
尝试一下:

Public Function area(s As String) As Variant
    Dim ary, ti As String, leng(0 To 1) As Double, i As Long
    Dim bry
    ti = Chr(39)
    ary = Split(Replace(s, " ", ""), "x")
    For i = 0 To 1
        If Right(ary(i), 1) = ti Then
            leng(i) = CDbl(Mid(ary(i), 1, Len(ary(i)) - 1))
        Else
            bry = Split(ary(i), ti)
            leng(i) = CDbl(bry(0)) + CDbl(bry(1)) / 12
        End If
    Next i
    area = leng(0) * leng(1)
End Function

您是否接受VBA解决方案??您是否接受VBA解决方案??+1表示非VBA解决方案。您可能想考虑使用查找代替查找,因为查找是区分大小写的,对于非VBA解决方案,将不适用于<代码> 3’x 5’< /代码>:+ 1。您可能想考虑使用查找代替查找,因为查找是区分大小写的,对于<代码> 3’x 5’< /C> >将不起作用。