ad

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.1.1 提取单元格中指定颜色的字体

网友投稿 67 2023-11-07

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

1.1.1 提取单元格中指定颜色的字体

皮蛋:言子, Range.Characters属性挺好用的,它就是用来修改标识对象中的字符属性的, 例如某字符的加粗或倾斜等。

无言:对,这就是它的用途。但它不仅用来设置格式,还可以提取已设置格式的字符。 皮蛋:还可以这样吗?上“栗子”。

无言:好吧,手上刚好有以前关于衣服尺码的表格。记得当时用户要提取表格中标红的尺 码或数字到旁边的单元格内,如图1 - 3所示。具体示例代码如代码1 - 2所示。

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.1.1 提取单元格中指定颜色的字体

代码1-2 提取单元格中红色字体

001|Sub Rng_Font_Color_Characters()

002| Dim Char_Rng As Range,F_Rng As Range,Zif_Col As Long

003| Dim Char_Cou As Integer,F_LEN As Integer,Tem_Str As String

004| Application.ScreenUpdating=False

005| With Range("A1").CurrentRegion

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

0071 End With

008| Zif_Col=RGB(255,0,0)

009 For Each F_Rng In Char_Rng

010 IfLen(F_Rng)>0 Then

011 Char_Cou=F_Rng.Characters.Count

012| For F_Len=1 To Char_Cou

013| With F_Rng.Characters(F_Len,1)

014| If.Font.Color=Zif_Col Then Tem_Str=Tem_Str&.Text

015| End With

016| Next F_Len

0171 F_Rng.Offset(0,1)=Tem_Str

018| Tem Str="

019| End If

020| Next F_Rng

0211 Application.ScreenUpdating =True

022|End Sub

(1)代码1-2示例过程与代码1-1相似,但更简单。通过获取 Char_Rng 变量除标题外的 有效区域作为F_Rng 循环的集合,并通过RGB 函数设置需要提取的字体颜色 Zif_Col变量的 具体值。

(2)过程中同样采用双层循环判断提取指定颜色的字符,首先通过循环中的If Len(F_ Rng)>0 判断单元格是否为空,不为空则通过L_Len 循环语句循环获取单元格中每个字符的 颜色。

(3)If.Font.Color =Zif_Col 语句比较 F_Rng.Characters(F_Len,1)截取的字符中的字体颜 色是否与Zif_Col变量一致,若一致则通过Characters.Text 属性截取该字符并写入Tem_Str变 量(Tem_Str=Tem_Str&.Text)。

(4)当F_Len 循环结束后,通过F_Rng.Offset(0,1)=Tem_Str语句将 Tem_Str 的组合字 符串写入循环单元格的右侧单元格(即B 列)并将Tem_Str变量清空。

无言:重点说下Tem_Str=””语句在这里的必要性。如果这里不先清空Tem_Str变量,那么 在 下 一 单 元 格 内 写 入 的 结 果 将 含 有 前 面 所 有 已 经 写 入 的 红 色 字 符 串 。

皮蛋:哦,明白了。

无言:好了,关于单元格格式的设置就先介绍这么多了,接下来介绍有关批注的。

1.2 创建批注和获取批注信息: Range Comment

假设需要将某些信息体现在单元格的右上角处并显示或隐藏,使用Excel 中的批注功能即 可实现。那么在VBA中要使用什么对象和属性才能对应批注功能呢?

Excel 的批注功能对应了VBA 中的Comments 对象,但是该对象不可独立使用,必需依托 于其他对象。例如,在Rang 对象上创建或者显示批注,所以附属Range 对象的Comment 属性, 并返回 一 个 Comment 对象。

无言:先简单说下Range.Comment属性的具体作用及语法。

返回一个 Comment 对象,代表与区域左上角单元格相关联的批注

Range.Comment

Range.Comment属性返回的一个批注(Comment) 对象,也就是需要通过 Comment 对象 的相关方法和属性才能操作或获取批注的相关信息内容。表1-2所示为Comment 对象的常用 成员及其作用。

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

上一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_1.4.2 武林盟主: HotSpot VM
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_5.1 基本的数据类型
相关文章

 发表评论

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

×