在本站早些的一篇文章——批量设定文字的上标中(http://www.excelba.com/showart.asp?art_id=40),介绍怎么用宏来批量设定上标,不过此例是设定固定字符串的情况,在论坛中,liangyuhong在(http://www.excelba.com/bbs/bbs_detail.asp?bid=1&aid=532)里说,能不能将类似“[内容]”的部份批量设定为上标,代码如下:
Private Sub BSSB(StarString As String, EndString As String)
On Error Resume Next
’先选择单元格(可以为多个),再运行此宏
Dim TRan As Range, TStr As String, i, j, k
For Each TRan In Selection
TStr = TRan.Value
If TStr Like "*[" & StarString & "]*[" & EndString & "]*" Then
k = 1
Do
i = WorksheetFunction.Search(StarString & "*" & EndString, TStr, k)
If Err.Number <> 0 Then
Err.Clear
Exit Do
End If
j = WorksheetFunction.Find(EndString, TStr, i) - i + 1
TRan.Characters(Start:=i, Length:=j).Font.Superscript = True
k = i + j
Loop While k < Len(TStr)
End If
Next
End Sub
上面的是实现子程序,只要在其它过程中调用即可,如:
Sub main()
BSSB "(", ")"
End Sub
现在这样类似的情况我们也可以轻松解决啦!
