设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] 用VBA将筛选后的公式批量转换为值

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:03:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有时需要在Excel中进行筛选后将公式结果转换为值。通常将公式结果转换为值用选择性粘贴的方法,但该方法无法用于筛选后的结果:如果复制筛选后的区域直在原区域接选择性粘贴,Excel会提示复制区域与粘贴区域形状不同而无法粘贴;如果先选定可见区域(如用快捷键“Alt+;”)后再进行复制粘贴,Excel会提示“不能对多重选定区域使用此命令”。这时可用下面的VBA代码将筛选后的公式批量转换为值。
Sub ConvAfterFilter()
On Error Resume Next
Application.ScreenUpdating = False
Dim Rng As Range
For Each Rng In ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
  If Rng.HasFormula Then
    Rng.Copy
    Rng.PasteSpecial xlValues
  End If
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
    按Alt+F11,打开VBA编辑器,在代码窗口中粘贴上述代码并运行即可。该代码仅将筛选结果中所有的公式结果转换为值,而不会受影响到筛选结果中未包含(隐藏)的单元格区域。
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-6-11 03:40 , Processed in 0.173934 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表