|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
用vba吧,用在你流程表的工作表事件上.思路:当Z列转成值时,根据+ - 号确定上下标的起始位置和长度.
由于上下标是对单元格内的字符串直接作用,因此用公式无法实现,从微软的命名来看,似乎在excel系统内使用了script.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Columns.Count > 1 Then
Exit Sub
ElseIf Target.HasFormula Or Target.Column <> 26 Then
Exit Sub
End If
Dim tmpC As Range
Application.EnableEvents = False
For Each tmpC In Target
i = Application.Min(Format(InStr(1, tmpC, "+"), "0;999;999"), Format(InStr(1, tmpC, "-"), "0;999;999"))
If i < 999 Then
j = Application.Max(InStr(i + 1, tmpC, "+"), InStr(i + 1, tmpC, "-"))
If j = 0 Then
j = Len(tmpC) + 1
Else
tmpC.Characters(j, Len(tmpC) - j + 1).Font.Subscript = True
End If
tmpC.Characters(i, j - i).Font.Superscript = True
End If
Next
Application.EnableEvents = True
End Sub |
|