vba - 使用 VBA 或 Excel 将英尺和英寸(例如 "5 ft 1 in")转换为十进制英尺

标签 vba excel data-conversion

我有一个数据库,其中有几列,以以下格式存储高度数据...

8 英尺 4 英寸

5 英尺 1 英寸

8 英尺 6 英寸

12 英尺 0 英寸

依此类推...3 列超过 20k 条记录。我需要使用 Excel 公式或 VBA 模块将其转换为十进制英尺。我改编了另一个 VBA 脚本,用于将以度分秒列出的坐标转换为十进制度,但我不确定哪里出错了...

Function ConvertFtInches(pInput As String) As Double
'Updateby20140227
Dim xFt As Double
Dim xIn As Double
xFt = Val(Left(pInput, InStr(1, pInput, " ft") - 1))
xIn = Val(Mid(pInput, InStr(1, pInput, " ft") + 2, _
             InStr(1, pInput, " in") - InStr(1, pInput, _
             " ft") - 2)) / 12
ConvertFtInches = xFt + xIn
End Function

....我可能完全不知道,因为我是 VBA 的初学者。这个剧本肯定有问题,因为它是根据不同的剧本改编的。可能有一个excel公式更容易使用。

希望有人能帮忙。所有其他线程都包含与我的格式不同的值的转换。谢谢!

最佳答案

一行VBA:

Function ConvertFtInches(pInput As String) As Double
ConvertFtInches = Split(pInput, " ft ")(0) + Split(Split(pInput, " ft ")(1), " in")(0) / 12
End Function

关于vba - 使用 VBA 或 Excel 将英尺和英寸(例如 "5 ft 1 in")转换为十进制英尺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45514995/

相关文章:

vba - 如何暂停 vba-excel 宏并允许用户交互

c# - 是否可以使用 C# 语言的 SSIS 脚本任务在 Excel 工作表中创建下拉列?

vba - 循环单元格并添加到范围

c - 如何将读取 ADC 值转换为 float ?

excel - 将 "##h ##m"转换为 ##.## 小时

c# - 在 C# 中如何将字符串变量转换为 double 型

ms-access - 禁用警告 : You copied a large amount of data onto the clipboard

vba - 工作表_更改不起作用

excel - 如何从一张表的数据中创建多个excel表中的下拉列表

excel - 如果 EnableCancelKey 未禁用,为什么 VBA 会停止