excel利用VBA将筛选后的公式批量转换为值

网友投稿 560 2022-12-03

excel利用VBA将筛选后的公式批量转换为值

excel利用VBA将筛选后的公式批量转换为值

有时需要在Excel中进行筛选后将公式结果转换为值。通常将公式结果转换为值用选择性粘贴的方法,但该方法无法用于筛选后的结果:如果复制筛选后的区域直在原区域接选择性粘贴,Excel会提示复制区域与粘贴区域形状不同而无法粘贴;如果先选定可见区域(如用快捷键“Alt+;”)后再进行复制粘贴,Excel会提示“不能对多重选定区域使用此命令”。这时可用下面的VBA代码将筛选后的公式批量转换为值。

Sub ConvAfterFilter()On Error Resume NextApplication.ScreenUpdating = FalseDim Rng As RangeFor Each Rng In ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)If Rng.HasFormula ThenRng.CopyRng.PasteSpecial xlValuesEnd IfNextApplication.CutCopyMode = FalseApplication.ScreenUpdating = TrueEnd Sub

按Alt+F11,打开VBA编辑器,在代码窗口中粘贴上述代码并运行即可。该代码仅将筛选结果中所有的公式结果转换为值,而不会受影响到筛选结果中未包含(隐藏)的单元格区域。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:利用VBA选择并打开多个工作簿文件
下一篇:Excel vba对象介绍和理解
相关文章