天天看点

VBA: 不连续单元格区域复制粘贴为数值

文章背景: 处理表格时,有时需要选中单元格区域,将区域内单元格的公式

复制粘贴为数值

。如果是连续的单元格区域,这样的操作是可行的。如果是不连续的单元格区域,这样的操作会报错。

VBA: 不连续单元格区域复制粘贴为数值

针对不连续的单元格区域,可以通过编写VBA代码的方式实现。

以下代码实现的功能是:针对选中的不连续的单元格区域,(1) 将单元格内的公式复制粘贴为数值;(2) 将单元格底色改为绿色。

Option Explicit

Sub CopyPasteValue():

    Dim Item As Range
    
    For Each Item In Selection:
    
        '复制,并粘贴为数值
        Item.Copy
        Item.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        Application.CutCopyMode = False
        
        '单元格底色设置为绿色, 以下代码通过录制宏的方式得到。
        With Item.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent6
            .TintAndShade = 0.399975585192419
            .PatternTintAndShade = 0
        End With
            
    Next
    
End Sub           

复制

效果演示:http://mpvideo.qpic.cn/0bc3uaacmaaa2yakjgbnojrfbigde2qaajqa.f10002.mp4?dis_k=0b32c9b52e10f8233551c7702c84b804&dis_t=1663656343&vid=wxv_2307830465048772611&format_id=10002&support_redirect=0&mmversion=false

参考资料:

[1] 不连续单元格如何复制贴成值(https://club.excelhome.net/thread-1416087-1-1.html)