Преобразовать широту / долготу из десятичного числа, минут, секунд (00000000) в целочисленные координаты (00.000000) - PullRequest
0 голосов
/ 02 июля 2019

У меня 182 набора координат с десятичной минутной секундой (DMS), которые мне нужно преобразовать в целочисленные координаты. У меня есть код для преобразования из определенного формата (00° 00' 00.00"), но я не могу отформатировать данные в этом формате из 00000000. Кажется, проблема в том, что я не могу использовать «в пользовательском формате. Когда я вручную добавляю символы DMS к данным, мой код работает.

Я попытался отформатировать ячейку, чтобы она выглядела как 00° 00' 00.00", но она возвращает ошибку

«Excel не может использовать введенный вами числовой формат».

Я знаю, что "это проблема, так как я смог ввести форматы, исключающие этот символ, но содержащие два других.

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

Этот код работает должным образом, но я не могу отформатировать свои данные для работы с этим кодом.

Я не писал этот код, и у меня мало опыта написания кода. Могу ли я изменить этот код, чтобы он не нуждался в символе «, или изменить символ, необходимый для того, чтобы я мог отформатировать его в своих данных?

Есть ли более простой способ преобразования моих данных из DMS в целочисленные координаты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...