如何将度/分/秒角度,或者从在 Excel 中的十进制角度

针对 Office 2003 的支持已终止

Microsoft 已于 2014 年 4 月 8 日终止了针对 Office 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 213449

概要
角度测量结果通常以度、 分和秒 (DMS) 的单位。1 度等于 60 分钟,而一分钟等于 60 秒。要简化一些数学计算,您可能想要表达角度的测量结果中度和度的十进制小数。

本文包含一个示例自定义函数,可用于将转换十进制格式存储,DMS 存储在文本格式和示例函数将 DMS 转换为十进制格式存储在一个角度值为一个角度值。
更多信息
Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保,包括但不是限于,适销性和针对特定用途的适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持人员可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定需求。
如果您的编程经验有限,您可能需要与 Microsoft 认证合作伙伴或 Microsoft 顾问服务联系。有关详细信息,请访问下列 Microsoft Web 站点︰

Microsoft 认证合作伙伴 — https://partner.microsoft.com/global/30000104

Microsoft 顾问服务- http://support.microsoft.com/gp/advisoryservice

有关可用的支持选项以及如何与 Microsoft 联系的详细信息,请访问下面的 Microsoft 网站︰http://support.microsoft.com/default.aspx?scid=fhEN-US;CNTACTMS

将十进制的度转换为度/分/秒

下面的 Microsoft Visual Basic for Applications 的自定义函数接受一个角度格式设置为十进制值并将其转换为文字值以度、 分和秒为单位显示。

Function Convert_Degree(Decimal_Deg) As Variant    With Application        'Set degree to Integer of Argument Passed        Degrees = Int(Decimal_Deg)        'Set minutes to 60 times the number to the right        'of the decimal for the variable Decimal_Deg        Minutes = (Decimal_Deg - Degrees) * 60        'Set seconds to 60 times the number to the right of the        'decimal for the variable Minute        Seconds = Format(((Minutes - Int(Minutes)) * 60), "0")        'Returns the Result of degree conversion       '(for example, 10.46 = 10~ 27  ' 36")        Convert_Degree = " " & Degrees & "° " & Int(Minutes) & "' " _            & Seconds + Chr(34)    End WithEnd Function				
若要使用此功能,请创建换算公式,如以下示例所示︰
  1. 开始 Excel,然后按 ALT + F11 来启动 Visual Basiceditor。
  2. 插入菜单上,单击模块
  3. 上述模块工作表到 Convert_Degree customfunction 输入的示例代码。
  4. 按 ALT + F11 来返回到 excel。
  5. 在单元格 A1 中键入 10.46.
  6. 在 A2 单元格中键入以下公式︰
    =Convert_Degree(A1)


    公式返回 10 ° 27'36"

转换为十进制的度度/分/秒

下面的 Microsoft Visual Basic for Applications 的自定义函数接受度、 分钟和秒钟格式中的 Convert_Degree 函数返回完全相同的格式 (例如,10 ° 27' 36") 的一个文本字符串,并将其转换为格式为十进制值的角度。这是 Convert_Degree 自定义函数的完全相反。

警告︰ 如果 Degree_Deg 参数以下面的格式不是此自定义函数将失败
<degrees>° <minutes>' <seconds>"</seconds></minutes></degrees>
即使秒值为 0。
Function Convert_Decimal(Degree_Deg As String) As Double   ' Declare the variables to be double precision floating-point.   Dim degrees As Double   Dim minutes As Double   Dim seconds As Double   ' Set degree to value before "°" of Argument Passed.   degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))   ' Set minutes to the value between the "°" and the "'"   ' of the text string for the variable Degree_Deg divided by   ' 60. The Val function converts the text string to a number.   minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _             InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, _             "°") - 2)) / 60    ' Set seconds to the number to the right of "'" that is    ' converted to a value and then divided by 3600.    seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _            2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) _            / 3600   Convert_Decimal = degrees + minutes + secondsEnd Function				
若要使用此功能,请创建换算公式,如以下示例所示︰
  1. 开始 Excel,然后按 ALT + F11 来启动 Visual BasicEditor。
  2. 插入菜单上,单击模块
  3. 上述模块工作表到 Convert_Decimal customfunction 输入的示例代码。
  4. 按 ALT + F11 来返回到 excel。
  5. 在单元格 A1 中键入以下公式︰
    = Convert_Decimal("10° 27' 36""")
    注意︰ 您需要键入三个引号 (""") 在 endof 平衡报价此公式的参数标记降为引号中的文本字符串。单元格引用将不需要 aquotation 标记。
  6. 该公式返回 10.46

警告:本文已自动翻译

属性

文章 ID:213449 - 上次审阅时间:09/18/2016 06:22:00 - 修订版本: 6.0

Microsoft Office Excel 2003, Microsoft Excel 2010, Microsoft Office Excel 2007

  • kbfunctions kbconvert kbsample kbdtacode kbhowto kbprogramming kbmt KB213449 KbMtzh
反馈