Я построил следующую функцию, чтобы изменить формат подшипника с DD.MMSS на DD ° MM'SS ", однако я получаю вышеупомянутую ошибку, когда функция достигает команды MRound, встроенной в пользовательскую функцию I Я тестирую.
Я прочитал ряд вопросов, связанных с этим типом ошибки компиляции при переполнении стека, и подозреваю, что ошибка связана с тем, что VBA неправильно ссылается на функцию MRound, однако я не знаю, как ее решить, если это так.
Ваша помощь очень ценится!
Функциональный тест (Bearing_DMS как одиночный) в виде строки
Dim degrees As String
Dim minutes_working As Single
Dim minutes As String
Dim seconds_working As Single
Dim seconds As String
'Determine degrees value
If Int(Bearing_DMS) < 10 Then
degrees = " " & Int(Bearing_DMS)
ElseIf Int(Bearing_DMS) >= 10 And Int(Bearing_DMS) < 100 Then
degrees = " " & Int(Bearing_DMS)
Else
degrees = Int(Bearing_DMS)
End If
'Determine minutes_working value
minutes_working = (Bearing_DMS - degrees) * 100
'Determine minutes value
If minutes_working < 1 Then
minutes = "00"
ElseIf minutes_working >= 1 And minutes_working < 10 Then
minutes = "0" & Int(minutes_working)
Else
minutes = Int(minutes_working)
End If
'Determine seconds_working value
seconds_working = (minutes_working - minutes) * 100
'Determine seconds value
If seconds_working < 1 Then
seconds = "00"
ElseIf seconds_working >= 1 And seconds_working < 10 Then
seconds = "0" & MRound(seconds_working, 1)
Else
seconds = MRound(seconds_working, 1)
End If
'Determine final value to display
Test = degrees & "° " & minutes & "' " & seconds + Chr(34)
Функция завершения