格式刷不能跨工作薄使用,VBA自建公式快速获取 字体名称

43 篇文章 0 订阅

视频效果点击这里


前言

格式刷在我们调整Excel工作表、Word文档的格式时经常使用到,它可以帮助我们快速批量调整字体、大小、颜色、背景色等,甚至是表格行高列宽、字间距大小等。但如果在不同的Excel工作薄或跨Word文档,格式刷却不能使用。
如果想要跨工作薄使用格式刷,只能将两个工作薄复制合并到同一工作薄内。
那有没有其他的方法?有,可以用VBA代码依次获取单元格背景色的RGB值,字体名称、大小、颜色,单元格行高列宽。有了这些数据,就可以用VBA代码逐个给单元格背景色、行高列宽、字体赋值,更复杂的工作表,也能实现格式刷跨工作薄、动态化使用。
当然,如果只是处理简单的数据,没必要使用VBA代码。如果批量处理数据,比如工作表很多、格式很复杂,VBA代码还是有很大的优势的。
今后几期将依次用VBA代码创建公式获取单元格背景色、字体名称、字体大小、字体颜色、单元格行高列宽等,为后期VBA代码批量处理数据格式打基础。
本期先介绍单元格字体名称的获取。


1.数字转字母代码

Public Function GetEngName(argColumn As Integer) As String  '数字转字母
    Dim strEngName As String
    Dim iNum, iMod As Integer

    iNum = argColumn \ 26
    iMod = argColumn Mod 26
    If (iMod = 0) Then
        If (iNum = 1) Then
            strEngName = Chr(90)
        Else
            strEngName = Chr(65 + iNum - 2) + Chr(90)
        End If
    Else
        If (iNum = 0) Then
            strEngName = Chr(65 + iMod - 1)
        Else
            strEngName = Chr(65 + iNum - 1) + Chr(65 + iMod - 1)
        End If
    End If
    GetEngName = strEngName
End Function

2.获取单元格字体名称

Function getFontName(rng As Range) As String   '获取单元格字体名称,若单元格字体名称不一,无法获得字体名称
    Dim fontName As String
    Dim rngRow As Integer
    Dim rngCol As Integer
    Dim ColA As String
    rngRow = rng.Row
    rngCol = rng.Column
    ColA = GetEngName(rngCol)
    fontName = ActiveSheet.Range(ColA & rngRow).Font.Name
    If rng.Value <> "" Then
      getFontName = fontName
    Else
      getFontName = ""
    End If
End Function
  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值