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

我想转换/replace数字

原始细胞:

35 – 45 – 12厘米

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

14 – 18 – 5英寸

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

我会用这个用户定义函数。 转到VBA并创build一个新模块,然后将以下function复制并粘贴到模块中。

 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更改为其他值。

编辑的信息:这是自我描述,但只是以防万一你不熟悉的VBA然后:它需要你给的公式调用的范围参数,并分裂它的空间。 然后遍历由空格拆分的数组元素,然后检查当前项是否是数字。 如果是的话,它认为这是一个被转换和转换的数字,如果不是,那么它保持完整的顺序。 然后它join这些元素(转换后的数字),并将其发送回您编写公式的调用方单元作为所需的结果。 希望能帮助到你。 与没有VBA的公式一样。 而且要小心,我至less假设了一个数字周围的空间。