专栏首页VBA 学习常用功能加载宏——筛选状态的单元格数值粘贴

常用功能加载宏——筛选状态的单元格数值粘贴

Excel中,函数是非常精彩的一个功能,能够帮助完成很多数据处理功能。

有时候,我们在使用了公式之后,会希望使用复制-选择性粘贴-数值,来去除公式。

这在正常使用过程中是没有问题的,可是,一旦数据是筛选过的,问题就出来了:

这个时候,如果不会VBA的话,可能会想到的办法是:

  • 插入1个辅助列1,填充序号
  • 再插入辅助列2
  • 给筛选出来的数据写上0
  • 其他可以使用ROW()函数返回行号,然后取消筛选,辅助列2数值粘贴
  • 按辅助列2排序
  • 这样0就到最上面了在一起了,选中数值粘贴后,再按照辅助列1排序

步骤有点多,有些麻烦!

如果能有一个在筛选状态下也可以使用的数值粘贴功能就方便多了,让我们用VBA来实现它,效果:

首先在customUI.xml中增加代码:

 <button id="rbbtnPasteValues" label="buttonname&#13;" size="large" onAction="rbbtnPasteValues" imageMso="WordCountList" />

回调函数:

Sub rbbtnPasteValues(control As IRibbonControl)
    Call MRange.PasteValues
End Sub

函数实现:

'筛选状态下可以使用的数值粘贴
Sub PasteValues()
    Dim rng As Range, AreasRng As Range
    
    If VBA.TypeName(Selection) <> "Range" Then
        Exit Sub
    End If
  
    '只需要处理筛选出来的,并且是公式的单元格
    On Error Resume Next
    Set rng = Selection.SpecialCells(xlCellTypeVisible)
    Set rng = rng.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0
    
    If Not rng Is Nothing Then
        '处理单元格的每一个区域
        For Each AreasRng In rng.Areas
            AreasRng.Value = AreasRng.Value
        Next
    End If

    Set rng = Nothing
    Set AreasRng = Nothing
End Sub

本文分享自微信公众号 - VBA 学习(xyjvba),作者:熊业军

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小游戏2048

    xyj
  • VBA指针Pointer

    与VarPtr得到的变量地址(假设是pv)关系是,pv这个地址保存的4个字节(32位电脑)的值就是ps。

    xyj
  • 常用功能加载宏——单元格数据连接

    经常用Excel的人,应该会经常需要把Excel里的数据复制到Word等其他软件中,复制过去经常会碰上格式上的问题。

    xyj
  • win10关闭任务栏窗口预览

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    suveng
  • 如何成为IoT开发者?

    物联网行业蓬勃发展,根据Gartner发布的一则报告,2017年全球使用互联设备数量将达到84亿。Gartner预测,到2020年将有超过208亿的物联网设备。...

    SDNLAB
  • SpringBoot 2.x 开发案例之前后端分离鉴权

    阅读本文需要一定的前后端开发基础,前后端分离已成为互联网项目开发的业界标准使用方式,通过Nginx代理+Tomcat的方式有效的进行解耦,并且前后端分离会为以后...

    小柒2012
  • 微信小程序正式发布,符合你的预期么?

    小程序终于在今日凌晨如期发布了,对很多人来说都是非常期待的,看各个开发者群里更是三更半夜还讨论的热火朝天的。

    一斤代码
  • Linux中的前台与后台运行

    然而有时候需要将编译、压缩等耗时的工作放到后台运行,这个时候只需要在命令末尾加上&即可。

    mwangblog
  • Yii框架ACF(accessController)简单权限控制操作示例

    本文实例讲述了Yii框架ACF(accessController)简单权限控制操作。分享给大家供大家参考,具体如下:

    砸漏
  • Java基础知识之Scanner类和String类学习,讲明白了,适合初学者

    1、Scanner 的概述和方法介绍 A:Scanner 的概述 B:Scanner 的构造方法原理 Scanner(InputStream source) S...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券