Такая беда: есть таблица с такими данными:
Концевые сноски это текст отформатированный в виде надстрочного текста. Для дальнейшей работы нужно представить сноски соответствующими верхними символами. Я вроде понимаю как сделать:
---------------------------------------------------------
Sub UpSymbol()
Dim p As Long
Dim bSub As Boolean
Dim sI As String
Dim leftCmopoHa As String
Dim rightCmopoHa As String
Dim j As Byte, sTemp As String, sCh As String * 1, byt As Byte
For p = 1 To Len(ActiveCell.Value)
If ActiveCell.Characters(Start:=p, Length:=1).Font.Superscript = True Then
sCh = Mid(ActiveCell.Value, p, 1)
sTemp = ""
byt = CByte(sCh)
sTemp = sTemp & IIf(bSub, getSubSymbol(byt), getSuperSymbol(byt))
leftCmopoHa = Left(ActiveCell.Value, p - Len(sCh))
rightCmopoHa = Right(ActiveCell.Value, Len(ActiveCell.Value) - Len(leftCmopoHa) - Len(sCh))
ActiveCell.Value = leftCmopoHa & sTemp & rightCmopoHa
End If
Next p
End Sub
Private Function getSubSymbol(i As Byte) As String
getSubSymbol = ChrW(i + 8320)
End Function
Private Function getSuperSymbol(i As Byte) As String
Dim iW As Integer
Select Case i
Case 1: iW = 185
Case 2, 3: iW = i + 176
Case 0, Is > 3: iW = i + 8304
End Select
getSuperSymbol = ChrW(iW)
End Function
------------------------------------------------------
, но как только я меняю первый надстрочный текст на символ и обновляю значение ячейки всё имеющееся форматирование слетает и в ячейке больше надстрочного текста не остаётся.
Нужен Help.
34¹,²,¹⁴/ 62³,¹³/ 64⁴,⁸,⁹,¹²/ 65⁵,⁶,⁸,¹⁰,¹²/ 63⁷,¹¹/ 38¹⁴,² |
---------------------------------------------------------
Sub UpSymbol()
Dim p As Long
Dim bSub As Boolean
Dim sI As String
Dim leftCmopoHa As String
Dim rightCmopoHa As String
Dim j As Byte, sTemp As String, sCh As String * 1, byt As Byte
For p = 1 To Len(ActiveCell.Value)
If ActiveCell.Characters(Start:=p, Length:=1).Font.Superscript = True Then
sCh = Mid(ActiveCell.Value, p, 1)
sTemp = ""
byt = CByte(sCh)
sTemp = sTemp & IIf(bSub, getSubSymbol(byt), getSuperSymbol(byt))
leftCmopoHa = Left(ActiveCell.Value, p - Len(sCh))
rightCmopoHa = Right(ActiveCell.Value, Len(ActiveCell.Value) - Len(leftCmopoHa) - Len(sCh))
ActiveCell.Value = leftCmopoHa & sTemp & rightCmopoHa
End If
Next p
End Sub
Private Function getSubSymbol(i As Byte) As String
getSubSymbol = ChrW(i + 8320)
End Function
Private Function getSuperSymbol(i As Byte) As String
Dim iW As Integer
Select Case i
Case 1: iW = 185
Case 2, 3: iW = i + 176
Case 0, Is > 3: iW = i + 8304
End Select
getSuperSymbol = ChrW(iW)
End Function
------------------------------------------------------
, но как только я меняю первый надстрочный текст на символ и обновляю значение ячейки всё имеющееся форматирование слетает и в ячейке больше надстрочного текста не остаётся.
Нужен Help.