Экспоненциальный формат отображения чисел

Автор Посетитель, 29 ноября 2022, 15:46

Посетитель

Здравствуйте!
Требуется помощь в модификации кода для макроса в эксель.
Макрос меняет экспоненциальный формат записи типа 5E+02, в аналогичную запись с 10 в степени.
Нужно внести правку, чтобы для положительных степеней не отображался +.


Option Explicit

Sub E()
   Dim t As String, np As String, midl As String
   Dim signp As String, i As Long, ary, expp As String
   Dim msg As String, neg As Boolean, r As Range
   midl = "·10"
   ary = Split("8304,185,178,179,8308,8309,8310,8311,8312,8313", ",")
   For Each r In Selection
      msg = ""
      t = r.Text
      If Left(t, 1) = "-" Then
         neg = True
         t = Mid(t, 2)
      Else
         neg = False
      End If

      np = Mid(t, 1, 4)
      signp = Mid(t, 6, 1)
      If signp = "+" Then
         signp = ChrW(8314)
      Else
         signp = ChrW(8315)
      End If

      expp = Mid(t, 7)
      If Left(expp, 1) = "0" Then expp = Mid(expp, 2)
      For i = 1 To Len(expp)
         msg = msg & ChrW(ary(CLng(Mid(expp, i, 1))))
      Next i

      msg = np & midl & signp & msg
      If neg Then msg = "-" & msg
      msg = Chr(34) & msg & Chr(34)
      r.NumberFormat = msg & ";" & msg & ";" & msg & ";"
   Next r
End Sub