如何在 Excel 中的十進位角度來回轉換度/分/秒角度

文章翻譯 文章翻譯
文章編號: 213449 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

角度的度量值通常被表示為單位角度、 分和秒 (DMS)。1 度等於 60 分鐘,而另一個分鐘等於 60 秒。若要簡化,您可能會有些數學計算要表示中度 」 及 「 十進位小數的角度的度量單位度為單位。

本文包含範例的自訂函式,您可以使用將角度值儲存於十進位的格式,才能以文字格式儲存的 DMS 轉換格式,並將儲存在中度值,轉換 DMS 範例函數十進位格式。

其他相關資訊

Microsoft 會提供程式設計範例僅供說明,而不需做任何明示或默示的保證,其中包括但不是限於適售性及/或適合某特定用途之默示擔保責任。本文假設您已熟悉我們所示範的程式設計語言,以及用來建立和偵錯程序的工具。Microsoft 技術支援工程師可以協助解釋特定程序中的功能,但它們不會修改這些範例以提供附加功能或建構符合您需求的程序。
如果您有限制的程式設計經驗,您可以連絡微軟認證夥伴 」 或 「 Microsoft 諮詢服務。如需詳細資訊,請造訪下列 Microsoft 網站取得:

Microsoft 認證合作夥伴- https://partner.microsoft.com/global/30000104

Microsoft 諮詢服務- http://support.microsoft.com/gp/advisoryservice

如需有關可用支援選項,以及有關如何連絡微軟的詳細資訊,請造訪下列 Microsoft 網站:http://support.microsoft.com/default.aspx?scid=fhEN (英文)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 With
End Function
				
若要使用這個函式,建立 [轉換公式,如下列所示範例:
  1. 啟動 Excel,然後按下 ALT + F11 來啟動 Visual Basic編輯器。
  2. 在 [插入] 功能表上按一下 [模組]。
  3. 輸入自訂 Convert_Degree 的範例程式碼上述模組工作表中的函式。
  4. 請按 ALT + F11 鍵以返回認識學習更多。
  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 + seconds
End Function
				
若要使用這個函式,建立 [轉換公式,如下列所示範例:
  1. 啟動 Excel,然後按下 ALT + F11 來啟動 Visual Basic編輯器。
  2. 在 [插入] 功能表上按一下 [模組]。
  3. 輸入自訂 Convert_Decimal 的範例程式碼上述模組工作表中的函式。
  4. 請按 ALT + F11 鍵以返回認識學習更多。
  5. 儲存格 A1 中輸入下列公式:
    = Convert_Decimal("10° 27' 36""")
    附註: 您必須輸入三個引號 (""") 結尾此公式的秒數,在引號之間取得平衡的引數然後在文字字串的引號。不需要儲存格參照引號。
  6. 此公式會傳回 10.46

屬性

文章編號: 213449 - 上次校閱: 2013年4月9日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
  • Microsoft Office Excel 2007
關鍵字:?
kbfunctions kbconvert kbsample kbdtacode kbhowto kbprogramming kbmt KB213449 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:213449
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com