ad

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.1 给指定字符串设置上标或下标

网友投稿 53 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第1章,第1节,陈锡卢、李应钦著。

在使用Excel时,可能会在单元格中设置某些指定的字符为上标或下标,例如平方单位或 立方单位——m2、cm2、m2 或mm3、cm3、m3 等类似单位;还有可能会对单元格内某些字符

单独进行加粗、倾斜或者设置颜色,而非针对整个单元格内的字符进行设置,此时需要通过 Rag e.Cla racters属性来获取指定所需字符的位置并进行相应的设置。

第一章 给指定字符串设置上标或下标

无言:先来看下Range .Characters属性的语法。

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.1 给指定字符串设置上标或下标

Rag e.Characers 属性用于获取对象内指定位置的字符并截取指定字符个数,同时通过 C harac ters 对象的属性对截取的字符进行格式设置。

其中, Start 参数指定对象内字符串中字符的开始位置——例如123456,要由第4位的4 开始截取字符,那么 Start参 数 的 值 为 4 ; 而 Length 参数则是从开始截取字符位置算起要截取

的总字符数。

无言:该属性类似于Excel 函数中的I id函数。下面举个简单例子。

R ange("A 1")Characters(4,3)’A 1单元格的值为123456,那么返回的字符串结果为:456

因为 R ange.Characters 属 性 返 回 的 是 C haracters对 象 , 也 是 一 个 新 的 子 对 象 。 通 过 Characters 对象中的属性成员可对截取的字符串进行格式设置,其常用属性如表1- 1所示。

无言 :通过表1-1发现,要设置Range.Characters属性截取后的字符串格式,就需要通过该 表的属性进行设置。现在按照上面的语句及属性来设置如图1-1所示的电缆清单,将面积单位 mm² 的2设置为上标样式,并且将这3个字符标识为红色,如图1-2所示。

皮蛋:这些型号规格挺有规律的,应该可简单搞定。

无言:这个可不一定,有些还可能在开头或中间呢,所以不能想得太简单了。示例代码如 代码1-1所示。

代 码 1 - 1 设置规格型号中的单位数字上标并标红

001|Sub Rng_Characters_Superscript)

002 Dim Char_Rng As Range,F_Rng As Range,Zif As String

003| Dim Char_Cou As Integer,F_Len As Integer

004| Application.ScreenUpdating=False

005| With Range("Al").CurrentRegion

006| Set Char_Rng=.Offset(1,1).Resize(.Rows.Count-1,1)

0071 End With

008| Zif="mm2"

009| For Each F_Rng In Char_Rng

010| IfLCase(F_Rng)Like "*"&Zif&"*"Then

011 Char_Cou=F_Rng.Characters.Count

012| For F_Len=1 To Char_Cou

013| With F_Rng.Characters(F_Len,Len(Zif))

014| IfLCase(.Text)Like Zif Then

015| .Font.ColorIndex =3

0161 F_Rng.Characters(F_Len+Len(Zif)-1,1)_

代码1-1示例过程是将单元格中含有指定字符的末位数字设置为上标并将该字符串标识为 红色。过程中用到了 Like 和 Character 对象的相关属性相配合设置:

(1)Set Char_Rng=.Offset(1,1).Resize(.Rows.Count-1,1)语句为获取标题后第2列的有 效区域并赋值给 Char_Rng;Char_Rng 作为 F_Rng 的循环对象集合。

(2)Zif="mm2" 语句则是作为需要查找指定的面积单位字符串变量,并作为与Range. Characters 获取的字符进行比较的重要变量。

(3)通过F_Rng 循环比较字符内容。首先通过IfLCase(F_Rng)Like "*"&Zif &"*"语句 配合Like 和通配符比较单元格中是否存在Zif 变量中的字符,并且通过LCase函数将单元格中 的所有大写字母转换为小写字母,这样有利于与Zif变量进行比较;当单元格中存在指定的字 符时,将满足If 的条件判断,并触发判断If 语句的循环语句。

(4)F_Rng.Characters.Count 语句获取单元格中的字符总数并赋值给 Char_Cou, 该变量为 L_Len 循环的终值。

(5)通过L_Len 循环及F_Rng.Characters(F_Len,Len(Zif)) 语句循环截取不同位置相同字 符数,与Zif 变量进行比较;If LCase(.Text)Like Zif 语句通过将字符转换小写字符后再次与 Zif变量进行比较,若满足要求,则截取该位置的字符串并设置为红色(.Font.Colorlndex =3)。 其中, .Text为通过With F_Rng.Characters(F_Len,Len(Zif))语句获取循环中截取后的文本对象 内容。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_2.7.3 Django Template 的 Render
下一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_8.0 VBA基本知识复习
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×