У меня есть макрос в Excel, который преобразует значение десятичной степени (прямое восхождение) в астрономический часовой угол с часами (h), минутами (м) и секундами (секундами). Есть ли способ, чтобы вернуть строку с верхними аббревиатурами h, m, s?Вернуть строку с надстрочными символами в функции VBA
Это мой Excel-макро:
Function Convert_Hours(Decimal_Deg) As Variant
With Application
hours_dec = Decimal_Deg/360 * 24
hours = Int(hours_dec)
minutes_dec = hours_dec - hours
minutes = Int(minutes_dec)
seconds = minutes_dec - minutes
Convert_Hours = " " & hours & "h " & minutes & "m " & Round(seconds, 2) & "s "
End With
End Function
Так, например, в ячейке А1 я пишу 176.7854
и в ячейке B1 =Convert_Hours(A1)
. Это записывает 11h 0m 0.79s
в ячейку B1. Но то, что я хочу это: 11 ч м 0,79 s
Я не хочу, чтобы ссылаться на некоторые выбранные ячейки с помощью VBA, а затем применить что-то вроде c.Font.Superscript = True
, что стандартный ответ, когда прибегая к помощи (!) для надстрочной строки в VBA. Моя функция Convert_Hours()
должна возвращать отформатированную строку самостоятельно.
Спасибо заранее!
Насколько я понимаю ваш вопрос, невозможно. Superscripting - это тип форматирования, например, смещение или подчеркивание. Вы не можете переопределить переменную String по той же причине, что и вы не можете называть String: этот тип данных не содержит такого параметра. – Limak