注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

Excel如何将度/分/秒的角度转换为十进制角度  

2012-10-26 00:09:00|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
角度测量结果通常以度、 分和秒 (DMS) 为单位。1 度等于 60 分钟为单位),而一分钟等于 60 秒。若要简化您可能想要表达中度和小数度的角度测量一些数学计算。

本文包含一个自定义函数示例可用于转换一个角度值,以十进制格式存储,到 DMS 存储在文本格式,并将 DMS 转换为十进制格式存储在一个角度值的函数示例。

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

下面的 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 With
End Function
若要使用此函数,创建转换公式,如以下示例所示:
  1. 启动 Excel,然后按 ALT + F11 可启动 Visual Basic 编辑器。
  2. 单击插入菜单上的模块.
  3. 输入模块工作表中,上面所述的 Convert_Degree 自定义函数的代码示例。
  4. 按 ALT + f11 键以返回到 excel。
  5. 在 A2 单元格中键入以下公式:
    =Convert_Degree(A1)


    公式返回 10 ° 27'36"

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

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

警告: 如果 Degree_Deg 参数以下面的格式不是此自定义函数将失败
<degrees> ° <minutes> <seconds>"
即使秒值为 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 + seconds
End Function
若要使用此函数,创建转换公式,如以下示例所示:
  1. 启动 Excel,然后按 ALT + F11 可启动 Visual Basic 编辑器。
  2. 单击插入菜单上的模块.
  3. 输入模块工作表中,上面所述的 Convert_Decimal 自定义函数的代码示例。
  4. 按 ALT + f11 键以返回到 excel。
  5. 在单元格 A1 中键入以下公式:
    = Convert_Decimal("10° 27' 36""")
    注意: 您需要键入三个引号 (""") 此公式,以秒为单位) 和文本字符串的引号平衡在引号中的参数的结尾处。单元格引用将不需要引号。
  6. 该公式返回 10.46
  评论这张
 
阅读(2732)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016