ET疑难千寻千解丛书之EXCEL2010编程与实践 罗刚君 章兰新 黄朝阳 编著
疑难29
如何查找所有“#”并标为上标 如图所示的所有“#”符号表示机台号,如何查找到所有“#”号并上标显示? è解决方案 使用Range.Find方法查找每个包含“#”的单元格,并将其中的“#”字符设置字体属性为Superscript,表示上标显示。为了体现程序的通用性,允许用户自定义需要上标显示的字符,以及让程序对单元格逐个字符检查,将每一个“#”都上标显示。 í操作方法 步骤1
确定活动工作表为“生产表”,按【Alt+F11】组合键打开VBE窗口。 步骤2
选择菜单“插入”→“模块”,并输入以下代码:
- Sub 替换指定字符标识为上标()
- Dim rng As Range, i As Integer, First As String, inputt As String
- inputt = InputBox("请指定需要上标显示的字符,只有一个字符", "指定字符", "#")
- '指定需要上标的字符
- Application.ScreenUpdating = False '关闭屏幕更新,从而提速
- Set rng = Cells.Find(inputt, LookAt:=xlPart, LookIn:=xlFormulas)
- '开始查找
- If Not rng Is Nothing Then '如果找到
- First = rng.Address '记录首个符合条件的单元格的地址
- Do '循环查找,直到返回第一个找到的单元格时停止
- For i = 1 To Len(rng) '循环检查每一个字符
- '如果某字符等于用户输入的字符,则将它上标显示
- If Mid$(rng, i, 1) = Left(inputt, 1) Then rng.Characters(Start:=i,
- Length:=1).Font.
- Superscript = True
- Next
- Set rng = Cells.FindNext(rng) '查找下一个
- Loop Until rng.Address = First
- End If
- Application.ScreenUpdating = True '恢复屏幕更新
- End Sub
复制代码步骤3
光标置于代码中任意位置,并按【F5】键执行,所有表示机台号的“#”都自动上标显示,如图所示。
============================= 以上摘自《EXCEL2010编程与实践》 |