我想转换/替换数字
原始单元格:
35 - 45 - 12 cm
在下一个单元格中寻找转换:
14 - 18 - 5英寸
这种格式有很多单元格。任何人??
答案 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的公式也可以这样做。请注意,我假设数字周围至少有一个空格。