VBA如何记录单元格中字符内容和格式

75 篇文章 6 订阅
32 篇文章 1 订阅

实例需求:Excel单元格中的字符可以设置不同的字体格式(大小、颜色等),有时需要将这些信息保存起来,以便于后续代码的处理(例如替换后恢复原字体颜色,或者统计某种指定格式字符个数等等),此时使用自定义数据结构就可以高效的完成这个任务。

在这里插入图片描述

示例代码如下。

Type CharColor
    aChars() As String
    aColors() As Long
End Type
Sub Demo()
    Dim i As Long, iLen As Long, j As Long
    Dim aCell(1 To 2) As CharColor
    For i = 1 To 2
        iLen = Len(Range("A" & i).Value)
        ReDim aCell(i).aChars(1 To iLen)
        ReDim aCell(i).aColors(1 To iLen)
        For j = 1 To iLen
            With Range("A" & i).Characters(j, 1)
                aCell(i).aChars(j) = .Text
                aCell(i).aColors(j) = .Font.Color
            End With
        Next
    Next
    Debug.Print "A1第1个字符是:" & aCell(1).aChars(1) & " 颜色:" & aCell(1).aColors(1)
    Debug.Print "A2第4个字符是:" & aCell(2).aChars(4) & " 颜色:" & aCell(2).aColors(4)
End Sub

【代码解析】
第1~4行代码为用户自定义数据结果,包括两个数组,aChars()用于保存字符,aColors()用于保存字体颜色。
第7行代码定义一个数组(包含两个元素),其类型为CharColor
第8~18行代码循环变量A列数据,如果需要大家可以自行修改为动态获取数据范围。
第9行代码获取单元格字符个数。
第10~11行代码根据字符个数,重新分配数组存储空间。
第12行代码循环变量每个字符及其属性。
第14行代码将字符保存在数组中。
第15行代码将字符的字体颜色保存在数组中。
第19~20行代码在立即窗口中输出内容,如下所示。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值