在excel中将值从cm转换为英寸(长度 - 宽度 - 厚度)

时间:2017-01-08 20:21:12

标签: excel excel-2007

我想转换/替换数字

原始单元格:

35 - 45 - 12 cm

在下一个单元格中寻找转换:

14 - 18 - 5英寸

这种格式有很多单元格。任何人??

1 个答案:

答案 0 :(得分:1)

我会使用用户自定义函数。转到VBA并创建一个新模块,然后将以下功能复制并粘贴到模块中。

Function convertToInches(rng As Range)
Dim numbers
Dim i As Integer
Dim ret() As String
    If rng.Cells.Count > 1 Then
        convertToInches = "ERR: Single Cell Required"
    Else
        numbers = Split(rng.Value, " ")
        For i = 0 To UBound(numbers)
            ReDim Preserve ret(i)
            If IsNumeric(numbers(i)) Then
                ret(i) = Round(Application.WorksheetFunction.Convert(numbers(i), "cm", "in"), 0)
            Else
                ret(i) = numbers(i)
            End If
        Next i
        convertToInches = Join(ret, " ")
    End If
End Function

然后返回工作表并使用单元格进行尝试。如果A1具有cm值并且您希望B1为英寸,则将以下公式放入B1:

  

= convertToInches(A1)

请注意,如果您想要数字,那么在Round函数中将0更改为其他内容。

EDIT for info:它是自我描述性的,但是如果你不熟悉VBA那么:它采用你给出的公式调用的范围参数,并用它中的空格拆分它。然后循环遍历由空格分割的数组元素,然后检查当前项是否为数字。如果是,那么它认为它是一个要转换和转换的数字,如果没有那么它会以相同的顺序保持原样。然后它连接这些元素(转换后的数字)并将其发送回您将公式编写为所需结果的调用者单元格。希望能帮助到你。没有VBA的公式也可以这样做。请注意,我假设数字周围至少有一个空格。